SparePartsService.cs 2.95 KB
using HHECS.Dal.Repository;
using HHECS.Infrastructure.Json;
using HHECS.Model.Entities;
using System;
using System.Linq;
using System.Linq.Expressions;

namespace HHECS.Application.Service
{
    public class SparePartsService : BaseService
    {
        public string Load(SpareParts entity, int pageIndex, int pageSize)
        {
            return Execute(() =>
            {
                using var sparePartsRepository = new SparePartsRepository();
                var query = sparePartsRepository.Where(GetExpression(entity));
                var list = query.Page(pageIndex, pageSize).ToList();

                var dylist = list.ToList();
                Response.Result = dylist;
                Response.Count = query.Count();
                return Response.ToJson();
            });
        }

        private Expression<Func<SpareParts, bool>> GetExpression(SpareParts entity)
        {
            Expression<Func<SpareParts, bool>> filter = t => true;
            if (!string.IsNullOrEmpty(entity.SystemName))
            {
                filter = filter.And(t => t.SystemName.Contains(entity.SystemName));
            }
            return filter;
        }

        public string LoadDesc(SparePartsDetail entity, int pageIndex, int pageSize)
        {
            return Execute(() =>
            {
                using var sparePartsDetailRepository = new SparePartsDetailRepository();
                var query = sparePartsDetailRepository.Where(GetExpression(entity));
                var list = query.Page(pageIndex, pageSize).ToList();

                Response.Result = list;
                Response.Count = query.Count();
                return Response.ToJson();
            });
        }

        private Expression<Func<SparePartsDetail, bool>> GetExpression(SparePartsDetail entity)
        {
            Expression<Func<SparePartsDetail, bool>> filter = t => true;
            if (!string.IsNullOrEmpty(entity.HeadKeys))
            {
                filter = filter.And(t => t.HeadKeys == entity.HeadKeys.Trim());
            }
            if (!string.IsNullOrEmpty(entity.Name))
            {
                filter = filter.And(t => t.Name.Contains(entity.Name));
            }
            if (!string.IsNullOrEmpty(entity.Number))
            {
                filter = filter.And(t => t.Number == entity.Number.Trim());
            }
            if (!string.IsNullOrEmpty(entity.Parts))
            {
                filter = filter.And(t => t.Parts.Contains(entity.Parts));
            }
            return filter;
        }

        public string Export(SpareParts entity)
        {
            return Execute(() =>
            {
                var result = new SparePartsRepository()
                 .Where(GetExpression(entity))
                 .OrderByDescending(a => a.Created)
                 .ToList();

                Response.Result = result;
                Response.Count = result.Count;
                return Response.ToJson();

            });
        }
    }
}