コード例 #1
0
        public PageResult <OPC_ShippingSale> QueryShippingSales(ExpressRequestDto request, int shippingStatus, int uid)
        {
            using (var db = new YintaiHZhouContext())
            {
                Expression <Func <OPC_ShippingSale, bool> > filterExpression =
                    t =>
                    t.CreateDate >= request.StartDate && t.CreateDate < request.EndDate &&
                    t.ShippingStatus == shippingStatus;

                if (!string.IsNullOrEmpty(request.OrderNo))
                {
                    filterExpression = filterExpression.And(x => x.OrderNo == request.OrderNo);
                }

                IAuthUser user = new AuthUser(uid);
                if (!user.IsAdmin)
                {
                    filterExpression =
                        filterExpression.And(x => user.AuthenticatedStores().ToArray().Contains(x.StoreId.Value));
                }

                int cnt = db.OPC_ShippingSales.Count(filterExpression);

                var list =
                    db.OPC_ShippingSales.Where(filterExpression)
                    .OrderBy(o => o.CreateDate)
                    .Skip(request.PagerRequest.SkipCount)
                    .Take(request.PagerRequest.PageSize)
                    .ToList();
                return(new PageResult <OPC_ShippingSale>(list, cnt));
            }
        }