Пример #1
0
        public virtual ActionResult GetAll([DataSourceRequest] DataSourceRequest request,
                                           DateTime?dateFrom,
                                           DateTime?dateTo,
                                           string buyerName,
                                           string orderNumber,
                                           string feedbackStatus)
        {
            LogI("GetAll");

            var filter = new FeedbackFilterViewModel()
            {
                DateFrom       = dateFrom,
                DateTo         = dateTo,
                BuyerName      = buyerName,
                OrderNumber    = orderNumber,
                FeedbackStatus = feedbackStatus
            };

            request.Sorts = new List <SortDescriptor>()
            {
                new SortDescriptor("OrderDate", ListSortDirection.Descending)
            };
            var items      = OrderFeedbackViewModel.GetAll(Db, filter);
            var dataSource = items.ToDataSourceResult(request);

            return(new JsonResult {
                Data = dataSource, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
        public static IEnumerable <OrderEmailViewModel> GetAll(IUnitOfWork db,
                                                               FeedbackFilterViewModel filter)
        {
            var orders = db.Orders.GetListForFeedback()
                         .Select(o => new OrderEmailViewModel
            {
                Id                  = o.Id,
                OrderId             = o.OrderId,
                OrderNumber         = o.OrderId,
                AmazonEmail         = o.AmazonEmail,
                BuyerEmail          = o.BuyerEmail,
                OrderDate           = o.OrderDate,
                ShippingService     = o.ShippingService,
                BuyerName           = o.PersonName,
                ShippingDate        = o.ShipDate,
                ShippingCountry     = o.ShippingCountry,
                IsSent              = o.IsEmailed,
                FeedbackRequestDate = o.FeedbackRequestDate,
                Timezone            = o.Timezone,
                PackageDeliveryDate = o.ActualDeliveryDate,
                TrackingStateEvent  = o.TrackingStateEvent,
                TrackingStateDate   = o.TrackingStateDate,
            });

            if (filter.DateFrom.HasValue)
            {
                orders = orders.Where(o => o.OrderDate >= filter.DateFrom.Value);
            }

            if (filter.DateTo.HasValue)
            {
                orders = orders.Where(o => o.OrderDate <= filter.DateTo.Value);
            }

            if (!String.IsNullOrEmpty(filter.BuyerName))
            {
                orders = orders.Where(o => o.BuyerName.Contains(filter.BuyerName));
            }

            if (!String.IsNullOrEmpty(filter.OrderNumber))
            {
                orders = orders.Where(o => o.OrderId == filter.OrderNumber);
            }

            if (!filter.IsIncludeNotDelivered)
            {
                orders = orders.Where(o => o.PackageDeliveryDate.HasValue);
            }

            if (!filter.IsIncludeSent)
            {
                orders = orders.Where(o => !o.FeedbackRequestDate.HasValue);
            }


            return(orders.OrderByDescending(o => o.OrderDate));
        }