Пример #1
0
        public IPagedList <OutStorageInfoExt> GetOutStoragePagedList(OutStorageListSearchParam param)
        {
            var re = _outStorageInfoRepository.GetOutStoragePagedList(param);

            //GetPostBagNumber(re);
            return(re);
        }
Пример #2
0
        public IPagedList <OutStorageInfoExt> GetOutStoragePagedList(OutStorageListSearchParam param)
        {
            var ctx = this.UnitOfWork as LMS_DbContext;

            Check.Argument.IsNotNull(ctx, "数据库对象");

            var startTime = param.OutStartDate.HasValue ? param.OutStartDate.Value : new DateTime(2013, 1, 1);
            var endTime   = param.OutEndDate.HasValue ? param.OutEndDate.Value : new DateTime(2020, 1, 1);
            Expression <Func <OutStorageInfo, bool> > filter = p => true;

            filter = filter.AndIf(p => p.VenderCode == param.VenderCode, !string.IsNullOrWhiteSpace(param.VenderCode))
                     .AndIf(p => p.OutStorageID.Contains(param.OutStorageID), !string.IsNullOrWhiteSpace(param.OutStorageID))
                     .And(p => p.CreatedOn >= startTime && p.CreatedOn <= endTime);


            var query = ctx.OutStorageInfos.Where(filter);

            if (!string.IsNullOrWhiteSpace(param.PostBagNumber))
            {
                query = query.Where(p => p.MailPostBagInfos.Any(e => e.PostBagNumber == param.PostBagNumber));
            }

            var qq = from o in query
                     join p in ctx.MailPostBagInfos
                     on o.OutStorageID equals p.OutStorageID
                     into x
                     from y in x.DefaultIfEmpty()
                     select new OutStorageInfoExt()
            {
                OutStorageID  = o.OutStorageID,
                Remark        = o.Remark,
                Surcharge     = o.Surcharge,
                Register      = o.Register,
                Status        = o.Status,
                TotalFee      = o.TotalFee,
                TotalQty      = o.TotalQty,
                TotalWeight   = o.TotalWeight,
                VenderCode    = o.VenderCode,
                CreatedBy     = o.CreatedBy,
                CreatedOn     = o.CreatedOn,
                DeliveryStaff = o.DeliveryStaff,
                Freight       = o.Freight,
                FuelCharge    = o.FuelCharge,
                LastUpdatedBy = o.LastUpdatedBy,
                LastUpdatedOn = o.LastUpdatedOn,
                PostBagNumber = y.PostBagNumber
            };

            qq = qq.OrderByDescending(p => p.CreatedOn);
            return(qq.ToPagedList(param.Page, param.PageSize));
        }