Exemplo n.º 1
0
        /// <summary>
        /// 获得入库信息表
        /// </summary>
        /// <param name="totalCount"></param>
        /// <param name="searchName"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="orderEnum"></param>
        /// <param name="ascending"></param>
        /// <returns></returns>
        public CResult <List <WebPutInWarehouseRecord> > GetPutInWarehouseInfo(out int totalCount, string searchName = "", int pageIndex = 1, int pageSize = 100, PutInListOrderEnum orderEnum = PutInListOrderEnum.PutInTime, bool ascending = false, DateTime?searchStartTime = null,
                                                                               DateTime?searchEndTime = null)
        {
            totalCount = 0;
            using (var db = new WarehouseContext())
            {
                Expression <Func <PutInWarehouseRecord, bool> > filter = r => r.StateID == (int)RecordState.Show;
                if (!string.IsNullOrWhiteSpace(searchName))
                {
                    filter = filter.And(r => r.PutInUserName.Contains(searchName) ||
                                        r.WarehouseM.BarCode.Contains(searchName) ||
                                        r.Place.Contains(searchName));
                }
                if (searchStartTime.HasValue)
                {
                    filter = filter.And(r => r.PutInTime >= searchStartTime.Value);
                }
                if (searchEndTime.HasValue)
                {
                    searchEndTime = searchEndTime.Value.AddDays(1);
                    filter        = filter.And(r => r.PutInTime <= searchEndTime);
                }

                var putInWareIQueary = RepositoryIoc.GetPutInWarehouseRecordRepository(db).LazyGet(out totalCount, filter, CommonHelper.GetPropName <PutInWarehouseRecord>(r => r.WarehouseM));
                switch (orderEnum)
                {
                case PutInListOrderEnum.BarCode:
                    if (ascending)
                    {
                        putInWareIQueary = putInWareIQueary.OrderBy(r => r.WarehouseM.BarCode);
                    }
                    else
                    {
                        putInWareIQueary = putInWareIQueary.OrderByDescending(r => r.WarehouseM.BarCode);
                    }
                    break;

                case PutInListOrderEnum.Place:
                    if (ascending)
                    {
                        putInWareIQueary = putInWareIQueary.OrderBy(r => r.Place);
                    }
                    else
                    {
                        putInWareIQueary = putInWareIQueary.OrderByDescending(r => r.Place);
                    }
                    break;

                case PutInListOrderEnum.PutInTime:
                    if (ascending)
                    {
                        putInWareIQueary = putInWareIQueary.OrderBy(r => r.PutInTime);
                    }
                    else
                    {
                        putInWareIQueary = putInWareIQueary.OrderByDescending(r => r.PutInTime);
                    }
                    break;

                case PutInListOrderEnum.PutInUserName:
                    if (ascending)
                    {
                        putInWareIQueary = putInWareIQueary.OrderBy(r => r.PutInUserName);
                    }
                    else
                    {
                        putInWareIQueary = putInWareIQueary.OrderByDescending(r => r.PutInUserName);
                    }
                    break;
                }
                putInWareIQueary = putInWareIQueary.Page(out totalCount, null, true, pageIndex, pageSize);
                var result = (from f in putInWareIQueary
                              select new WebPutInWarehouseRecord()
                {
                    BarCode = f.WarehouseM.BarCode,
                    PutInTime = f.PutInTime,
                    PutInUserName = f.PutInUserName,
                    Place = f.Place,
                }).ToList();
                return(new CResult <List <WebPutInWarehouseRecord> >(result));
            }
        }