public IPagedList <OutStorageInfoExt> GetOutStoragePagedList(OutStorageListSearchParam param) { var re = _outStorageInfoRepository.GetOutStoragePagedList(param); //GetPostBagNumber(re); return(re); }
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)); }