public List <ShippingOrderModel> GetPagedList(PagerRequest pagerRequest, out int totalCount, ShippingOrderFilter filter, ShippingOrderSortOrder sortOrder) { var shippingOrderFilter = Filter(filter); var orderFilter = Order4Filter(filter); var rst = Func(db => { var shippingOrders = db.Set <OPC_ShippingSale>(); var orders = db.Set <Order>(); var salesOrders = db.Set <OPC_Sale>(); var stores = db.Set <Store>(); var q1 = from ss in shippingOrders.AsExpandable().Where(shippingOrderFilter) from o in orders.AsExpandable().Where(orderFilter) from sale in salesOrders join store in stores on ss.StoreId equals store.Id where ss.Id == sale.ShippingSaleId && o.OrderNo == ss.OrderNo select new { Order = o, ShippingSale = ss, SaleOrders = sale, Store = store }; var t = q1.Count(); var q = q1.OrderByDescending(v => v.ShippingSale.CreateDate) .Skip(pagerRequest.SkipCount) .Take(pagerRequest.PageSize).Select(v => new ShippingOrderModel { Id = v.ShippingSale.Id, CustomerAddress = v.ShippingSale.ShippingAddress, CustomerName = v.ShippingSale.ShippingContactPerson, CustomerPhone = v.ShippingSale.ShippingContactPhone, ExpressCode = v.ShippingSale.ShippingCode, ExpressFee = v.ShippingSale.ShippingFee ?? 0, GoodsOutCode = String.Empty, GoodsOutDate = v.ShippingSale.CreateDate, GoodsOutType = String.Empty, //v.ShippingSale. OrderNo = v.ShippingSale.OrderNo, PrintTimes = v.ShippingSale.PrintTimes, RmaNo = v.ShippingSale.RmaNo, SaleOrderNo = v.SaleOrders.SaleOrderNo, ShipCompanyName = v.ShippingSale.ShipViaName, ShipManName = String.Empty, ShippingMethod = String.Empty, ShippingStatus = v.ShippingSale.ShippingStatus, ShippingZipCode = v.ShippingSale.ShippingZipCode, ShipViaExpressFee = v.ShippingSale.ShippingFee ?? 0, ShipViaId = v.ShippingSale.ShipViaId, RMAAddress = v.Store.RMAAddress, RMAPerson = v.Store.RMAPerson, RMAPhone = v.Store.RMAPhone, RMAZipCode = v.Store.RMAZipCode }).ToList(); return(new { total = t, data = q }); }); totalCount = rst.total; return(rst.data); }
public List <ShippingOrderModel> GetPagedList(PagerRequest pagerRequest, out int totalCount, ShippingOrderFilter filter, ShippingOrderSortOrder sortOrder) { return(_shippingOrderRepository.GetPagedList(pagerRequest, out totalCount, filter, sortOrder)); }
private static Func <IQueryable <OPC_ShippingSale>, IOrderedQueryable <OPC_ShippingSale> > OrderBy(ShippingOrderSortOrder sortOrder) { Func <IQueryable <OPC_ShippingSale>, IOrderedQueryable <OPC_ShippingSale> > orderBy = null; switch (sortOrder) { default: orderBy = v => v.OrderByDescending(s => s.CreateDate).ThenBy(s => s.OrderNo); break; } return(orderBy); }