public void OrderFilter_ByLanguage()
        {
            var languageFirst  = mockLanguages.Where(l => l.Name == "English").Single();
            var languageSecond = mockLanguages.Where(l => l.Name == "German").Single();
            var filterFirst    = new OrderFilterModel
            {
                LanguageId = languageFirst.LanguageId,
                IsAdmin    = true
            };
            var filterSecond = new OrderFilterModel
            {
                LanguageId = languageSecond.LanguageId,
                IsAdmin    = true
            };

            var listFirst    = filterFirst.Apply(mockOrderListRows.AsQueryable());
            var listSecond   = filterSecond.Apply(mockOrderListRows.AsQueryable());
            var actualFirst  = mockOrderListRows.Where(o => o.LanguageId == languageFirst.LanguageId);
            var actualSecond = mockOrderListRows.Where(o => o.LanguageId == languageSecond.LanguageId);

            listFirst.Should().HaveCount(actualFirst.Count());
            listFirst.Should().Contain(actualFirst);

            listSecond.Should().HaveCount(actualSecond.Count());
            listSecond.Should().Contain(actualSecond);
        }
Beispiel #2
0
        public OrderResponseModel GetUserOrders(UserModel user, int page = Constants.DEFAULTPAGE)
        {
            var filter = new OrderFilterModel
            {
                UserId = user.Id
            };

            var dbOrders    = _orderRepository.Get(filter, page: page).ToList();
            var orders      = new List <OrderModel>();
            var orderIds    = dbOrders.Select(order => order.Id).ToList();
            var itemsFilter = new OrderItemFilterModel {
                OrderIds = orderIds
            };
            var allItems = _itemRepository.Get(itemsFilter);

            foreach (var order in dbOrders)
            {
                var mappedOrder  = _mapper.Map <OrderModel>(order);
                var currentItems = allItems.Where(item => item.OrderId == order.Id).ToList();
                mappedOrder.CurrentItems = _mapper.Map <List <OrderItemModel> >(currentItems);
                mappedOrder.Total        = currentItems.Sum(item => item.SubTotal);
                orders.Add(mappedOrder);
            }
            return(new OrderResponseModel
            {
                Orders = orders,
                PageCount = GetPageCount(user.Id)
            });
        }
        public void OrderFilter_ByBroker()
        {
            var brokerFirst  = 1;
            var brokerSecond = 2;
            var filterFirst  = new OrderFilterModel
            {
                BrokerId = brokerFirst,
                IsAdmin  = true
            };
            var filterSecond = new OrderFilterModel
            {
                BrokerId = brokerSecond,
                IsAdmin  = true
            };

            var listFirst    = filterFirst.Apply(mockOrderListRows.AsQueryable());
            var listSecond   = filterSecond.Apply(mockOrderListRows.AsQueryable());
            var actualFirst  = mockOrderListRows.Where(o => o.BrokerId == brokerFirst);
            var actualSecond = mockOrderListRows.Where(o => o.BrokerId == brokerSecond);

            listFirst.Should().HaveCount(actualFirst.Count());
            listFirst.Should().Contain(actualFirst);

            listSecond.Should().HaveCount(actualSecond.Count());
            listSecond.Should().Contain(actualSecond);
        }
        public void OrderFilter_ComboByRegionLanguage()
        {
            var languageFirst  = mockLanguages.Where(l => l.Name == "Chinese").Single();
            var languageSecond = mockLanguages.Where(l => l.Name == "German").Single();
            var regionFirst    = Region.Regions.Where(r => r.Name == "Västra Götaland").Single();
            var regionSecond   = Region.Regions.Where(r => r.Name == "Stockholm").Single();
            var filterFirst    = new OrderFilterModel
            {
                LanguageId = languageFirst.LanguageId,
                RegionId   = regionFirst.RegionId,
                IsAdmin    = true
            };
            var filterSecond = new OrderFilterModel
            {
                LanguageId = languageSecond.LanguageId,
                RegionId   = regionSecond.RegionId,
                IsAdmin    = true
            };

            var listFirst   = filterFirst.Apply(mockOrderListRows.AsQueryable());
            var listSecond  = filterSecond.Apply(mockOrderListRows.AsQueryable());
            var actualFirst = mockOrderListRows.Where(o => o.LanguageId == languageFirst.LanguageId &&
                                                      o.RegionId == regionFirst.RegionId);
            var actualSecond = mockOrderListRows.Where(o => o.LanguageId == languageSecond.LanguageId &&
                                                       o.RegionId == regionSecond.RegionId);

            listFirst.Should().HaveCount(actualFirst.Count());
            listFirst.Should().Contain(actualFirst);

            listSecond.Should().HaveCount(actualSecond.Count());
            listSecond.Should().Contain(actualSecond);
        }
Beispiel #5
0
        public List <OrderModel> GetAllOrders(bool isPaid = true, bool isUnpaid = true, string field = null, string ascending = Constants.DEFAULTSORTORDER, int page = Constants.DEFAULTPAGE, bool getRemoved = false)
        {
            var filter = new OrderFilterModel
            {
                IsPaid   = isPaid,
                IsUnpaid = isUnpaid
            };
            var dbOrders    = _orderRepository.Get(filter, field, ascending == Constants.DEFAULTSORTORDER, getRemoved, page);
            var orders      = new List <OrderModel>();
            var orderIds    = dbOrders.Select(order => order.Id).ToList();
            var itemsFilter = new OrderItemFilterModel {
                OrderIds = orderIds
            };
            var allItems = _itemRepository.Get(itemsFilter);

            foreach (var order in dbOrders)
            {
                var mappedOrder  = _mapper.Map <OrderModel>(order);
                var currentItems = allItems.Where(item => item.OrderId == order.Id).ToList();
                var mappedItems  = _mapper.Map <List <OrderItemModel> >(currentItems);
                mappedOrder.CurrentItems = mappedItems;
                mappedOrder.Total        = currentItems.Sum(item => item.SubTotal);
                orders.Add(mappedOrder);
            }
            return(orders);
        }
        public List <OrderBasicViewModel> Filter(OrderFilterModel model)
        {
            var items = m_Context.Orders.AsQueryable();

            if (model != null)
            {
                if (!string.IsNullOrEmpty(model.S_Customer_ID))
                {
                    int CategoryID = Int32.Parse(model.S_Customer_ID);
                    items = items.Where(x => x.CustomerID == CategoryID);
                }

                if (!string.IsNullOrEmpty(model.S_Returned))
                {
                    bool castedInt = model.S_Returned.Equals("0") ? false : true;
                    if (!castedInt)
                    {
                        items = items.Where(x => x.Date_Return == null);
                    }
                    else
                    {
                        items = items.Where(x => x.Date_Return != null);
                    }
                }

                if (model.S_ID != null)
                {
                    items = items.Where(x => x.ID == model.S_ID);
                }
            }
            return(_mapper.Map <List <OrderBasicViewModel> >(items.ToList()));
        }
        public void OrderFilter_ComboByTimeBroker()
        {
            var filterFirst = new OrderFilterModel
            {
                DateRange = new DateRange {
                    Start = new DateTime(2018, 09, 01), End = new DateTime(2018, 10, 30)
                },
                BrokerId = 1,
                IsAdmin  = true
            };
            var filterSecond = new OrderFilterModel
            {
                DateRange = new DateRange {
                    Start = new DateTime(2018, 06, 01), End = new DateTime(2018, 08, 31)
                },
                BrokerId = 2,
                IsAdmin  = true
            };

            var listFirst  = filterFirst.Apply(mockOrderListRows.AsQueryable());
            var listSecond = filterSecond.Apply(mockOrderListRows.AsQueryable());

            listFirst.Should().HaveCount(3);
            listFirst.Should().Contain(new[] { mockOrderListRows[3], mockOrderListRows[4], mockOrderListRows[6], });

            listSecond.Should().OnlyContain(o => o == mockOrderListRows[0]);
        }
        public void OrderFilter_ByOrderNumber()
        {
            var firstUser   = MockCustomerUsers.First();
            var filterFirst = new OrderFilterModel
            {
                OrderNumber = "337",
                IsAdmin     = true
            };
            var filterSecond = new OrderFilterModel
            {
                OrderNumber = "2018-001337",
                IsAdmin     = true
            };

            var listFirst    = filterFirst.Apply(mockOrderListRows.AsQueryable());
            var listSecond   = filterSecond.Apply(mockOrderListRows.AsQueryable());
            var actualFirst  = mockOrderListRows.Where(o => o.EntityNumber.Contains(filterFirst.OrderNumber));
            var actualSecond = mockOrderListRows.Where(o => o.EntityNumber.Contains(filterSecond.OrderNumber));

            listFirst.Should().HaveCount(actualFirst.Count());
            listFirst.Should().Contain(actualFirst);

            listSecond.Should().HaveCount(actualSecond.Count());
            listSecond.Should().Contain(actualSecond);
        }
        public void OrderFilter_ByDate()
        {
            var filterFirst = new OrderFilterModel
            {
                DateRange = new DateRange {
                    Start = new DateTime(2018, 06, 01), End = new DateTime(2018, 08, 31)
                },
                IsAdmin = true
            };
            var filterSecond = new OrderFilterModel
            {
                DateRange = new DateRange {
                    Start = new DateTime(2018, 09, 01), End = new DateTime(2018, 11, 01)
                },
                IsAdmin = true
            };

            var listFirst  = filterFirst.Apply(mockOrderListRows.AsQueryable());
            var listSecond = filterSecond.Apply(mockOrderListRows.AsQueryable());

            listFirst.Should().HaveCount(4);
            listFirst.Should().Contain(new[] { mockOrderListRows[0], mockOrderListRows[1], mockOrderListRows[2], mockOrderListRows[7] });

            listSecond.Should().HaveCount(4);
            listSecond.Should().Contain(new[] { mockOrderListRows[3], mockOrderListRows[4], mockOrderListRows[5], mockOrderListRows[6] });
        }
        public void OrderFilter_ByRegion()
        {
            var regionFirst  = Region.Regions.Where(r => r.Name == "Västra Götaland").Single();
            var regionSecond = Region.Regions.Where(r => r.Name == "Gotland").Single();
            var filterFirst  = new OrderFilterModel
            {
                RegionId = regionFirst.RegionId,
                IsAdmin  = true
            };
            var filterSecond = new OrderFilterModel
            {
                RegionId = regionSecond.RegionId,
                IsAdmin  = true
            };

            var listFirst    = filterFirst.Apply(mockOrderListRows.AsQueryable());
            var listSecond   = filterSecond.Apply(mockOrderListRows.AsQueryable());
            var actualFirst  = mockOrderListRows.Where(o => o.RegionId == regionFirst.RegionId);
            var actualSecond = mockOrderListRows.Where(o => o.RegionId == regionSecond.RegionId);

            listFirst.Should().HaveCount(actualFirst.Count());
            listFirst.Should().Contain(actualFirst);

            listSecond.Should().HaveCount(actualSecond.Count());
            listSecond.Should().Contain(actualSecond);
        }
Beispiel #11
0
        public ActionResult Filter()
        {
            var model = new OrderFilterModel();

            model.Products = this._IG_LoanProductService.GetAll();
            return(View(model));
        }
Beispiel #12
0
        public async Task <ActionResult <GetOrderDTO[]> > GetAsync([FromQuery] OrderFilterModel filter)
        {
            var entities = await _manager.GetAsync(filter);

            var dtos = _mapper.Map <OrderEntity[], GetOrderDTO[]>(entities);

            return(Ok(dtos));
        }
Beispiel #13
0
        public ActionResult Orders(int pageIndex = 1, OrderFilterModel filter = null)
        {
            const int pageSize = 20;

            ViewBag.status = filter.Status.ToString().ToLower();
            ViewBag.filter = filter.IsFilter;
            var list = this._IG_OrderService.GetAll(pageIndex, pageSize, null, this.GetStatus(filter.Status), filter.ProductCode, filter.Month, filter.Keyword, null, null, filter.BankClerkCode, null, this.User.G_UserDetail.Code);

            return(View(list));
        }
        public ActionResult Index(OrderFilterModel filterModel)
        {
            OrderIndexViewModel model = new OrderIndexViewModel()
            {
                OrderList   = filterModel.IsFiltered ? _orderService.Filter(filterModel).ToPagedList() : _orderService.GetAll().ToPagedList(1, PAGE_SIZE),
                FilterModel = filterModel,
            };

            return(View(GetIndexViewModel(model)));
        }
Beispiel #15
0
        public IActionResult GetHotelOrders(int id, [FromQuery] OrderFilterModel filter)
        {
            if (filter is null)
            {
                return(BadRequest(nameof(filter)));
            }
            IEnumerable <ActiveOrderDTO> orders = hotelAdminService.GetHotelOrders(id, mapper.Map <OrderFilterDTO>(filter));

            return(Ok(mapper.Map <IEnumerable <ActiveOrderDTO>, IEnumerable <ActiveOrderModel> >(orders)));
        }
Beispiel #16
0
        /// <summary>
        /// 根据业务状态获取订单状态列表
        /// </summary>
        /// <param name="status">业务状态</param>
        /// <returns></returns>
        private List <G_OrderStatusEnum> GetStatus(OrderFilterModel filter)
        {
            var list = new List <G_OrderStatusEnum>();

            if (!filter.IsFilter)
            {
                return(list);
            }
            switch (filter.Status)
            {
            case G_OrderBusinessStatusEnum.Canceled:
            {
                list.Add(G_OrderStatusEnum.Canceled);
                list.Add(G_OrderStatusEnum.SignCanceled);
            }
            break;

            case G_OrderBusinessStatusEnum.PreProcess:
            {
                list.Add(G_OrderStatusEnum.GojiajuPassed);
            }
            break;

            case G_OrderBusinessStatusEnum.PreSign:
            {
                list.Add(G_OrderStatusEnum.BankPassed);
            }
            break;

            case G_OrderBusinessStatusEnum.PreSuccess:
            {
                list.Add(G_OrderStatusEnum.BankSigned);
            }
            break;

            case G_OrderBusinessStatusEnum.Successed:
            {
                list.Add(G_OrderStatusEnum.Successed);
            }
            break;

            case G_OrderBusinessStatusEnum.Other:
            {
                //list.Add(G_OrderStatusEnum.Canceled);
                //list.Add(G_OrderStatusEnum.SignCanceled);
                //list.Add(G_OrderStatusEnum.InProcess);
                //list.Add(G_OrderStatusEnum.BankPassed);
                //list.Add(G_OrderStatusEnum.BankSigned);
                //list.Add(G_OrderStatusEnum.Successed);
            }
            break;
            }

            return(list);
        }
        public void OrderFilter_NoSettings()
        {
            var filter = new OrderFilterModel {
                IsAdmin = true
            };

            var list = filter.Apply(mockOrderListRows.AsQueryable());

            list.Should().HaveCount(mockOrderListRows.Count());
            list.Should().Contain(mockOrderListRows, because: "no filter parameters are specified");
        }
        public void OrderFilter_ByCustomerOrderNumber(string input, int count)
        {
            var filter = new OrderFilterModel
            {
                CustomerReferenceNumber = input,
                IsAdmin = true
            };

            var list = filter.Apply(mockOrderListRows.AsQueryable());

            list.Should().HaveCount(count);
        }
        public void OrderFilter_NoResults()
        {
            var filter = new OrderFilterModel
            {
                BrokerId = 3,
                IsAdmin  = true
            };

            var list = filter.Apply(mockOrderListRows.AsQueryable());

            list.Should().BeEmpty("no order is assigned to {0}", filter.BrokerId);
        }
Beispiel #20
0
        public async Task <IActionResult> GetAll([FromHeader] string authorization, [FromBody] OrderFilterModel orderFilter)
        {
            string userRole = _jwtHelper.GetUserRoleFromToken(authorization);

            if (userRole.Equals(Enums.Role.RoleName.Client.ToString()))
            {
                orderFilter.UserId = _jwtHelper.GetUserIdFromToken(authorization);
            }

            var orderModel = await _orderService.GetAllAsync(orderFilter);

            return(Ok(orderModel));
        }
Beispiel #21
0
        public int GetCount(OrderFilterModel orderFilter, bool getRemoved = false)
        {
            Expression <Func <OrderEntity, bool> > filter = null;

            if (orderFilter is not null)
            {
                filter = order => ((orderFilter.IsPaid && order.Status == Enums.OrderStatusType.Paid) ||
                                   (orderFilter.IsUnpaid && order.Status == Enums.OrderStatusType.Unpaid)) &&
                         (string.IsNullOrWhiteSpace(orderFilter.UserId) || order.UserId == orderFilter.UserId) &&
                         (orderFilter.PaymentId != null || order.PaymentId == orderFilter.PaymentId);
            }
            return(base.Get(filter, getRemoved: getRemoved).Count());
        }
Beispiel #22
0
        public int GetPageCount(string usedId = null, bool isPaid = true, bool isUnpaid = true)
        {
            var filter = new OrderFilterModel
            {
                UserId   = usedId,
                IsPaid   = isPaid,
                IsUnpaid = isUnpaid
            };
            int dbOrdersCount = _orderRepository.GetCount(filter);
            int pageCount     = (int)Math.Ceiling(dbOrdersCount / (double)Constants.ORDERPAGESIZE);

            return(pageCount);
        }
Beispiel #23
0
        public ActionResult GetFilter(OrderFilterModel model, string userId)
        {
            OrderDTO product = new OrderDTO
            {
                ProfileId    = userId,
                ProductName  = model.ProductName,
                ProductModel = model.ProductModel,
                StartDate    = model.StartDate == DateTime.MinValue ? model.StartDate = DateTime.Parse("01.01.2000") : model.StartDate,
                EndDate      = model.EndDate == DateTime.MinValue ? model.EndDate = DateTime.MaxValue : model.EndDate,
            };
            var list = _orderService.GetFilter(product);

            return(View("GetCustomerOrders", list.ToPagedList(1, 5)));
        }
Beispiel #24
0
        public int GetCount(OrderFilterModel orderFilter = null, bool getRemoved = false)
        {
            string filterString = BuildFilter(orderFilter, getRemoved);
            string sql          = $"select o.*, u.* from Orders o inner join AspNetUsers u on o.UserId=u.Id {filterString}";

            using SqlConnection connection = new(_connectionString);
            var orders = connection.Query <OrderEntity, UserEntity, OrderEntity>(sql, (OrderEntity, UserEntity) =>
            {
                OrderEntity.User = UserEntity;
                return(OrderEntity);
            });

            return(orders.Count());
        }
        public void OrderFilter_DateInclusivity()
        {
            var filter = new OrderFilterModel
            {
                DateRange = new DateRange {
                    Start = new DateTime(2018, 06, 07), End = new DateTime(2018, 08, 07)
                },
                IsAdmin = true
            };

            var list = filter.Apply(mockOrderListRows.AsQueryable());

            list.Should().HaveCount(3);
            list.Should().Contain(new[] { mockOrderListRows[0], mockOrderListRows[1], mockOrderListRows[2] }, because: "these orders fall within these dates");
        }
Beispiel #26
0
        public List <OrderEntity> Get(OrderFilterModel orderFilter = null, string field = Constants.DEFAULTORDERSORT, bool ascending = true, bool getRemoved = false, int page = Constants.DEFAULTPAGE)
        {
            page = page < Constants.DEFAULTPAGE ? Constants.DEFAULTPAGE : page;
            string sortOrder    = ascending ? "asc" : "desc";
            string filterString = BuildFilter(orderFilter, getRemoved);
            string sql          = $"select o.*, u.* from Orders o inner join AspNetUsers u on o.UserId=u.Id {filterString} order by {field} {sortOrder} offset {(page - Constants.DEFAULTPREVIOUSPAGEOFFSET) * Constants.ORDERPAGESIZE} rows fetch next {Constants.ORDERPAGESIZE} rows only";

            using SqlConnection connection = new(_connectionString);
            var orders = connection.Query <OrderEntity, UserEntity, OrderEntity>(sql, (OrderEntity, UserEntity) =>
            {
                OrderEntity.User = UserEntity;
                return(OrderEntity);
            });

            return(orders.ToList());
        }
Beispiel #27
0
        public List <OrderEntity> Get(OrderFilterModel orderFilter = null, string field = null, bool ascending = true, bool getRemoved = false, int page = Constants.DEFAULTPAGE)
        {
            page = page < Constants.DEFAULTPAGE ? Constants.DEFAULTPAGE : page;
            Expression <Func <OrderEntity, bool> > filter = null;

            if (orderFilter is not null)
            {
                filter = order => ((orderFilter.IsPaid && order.Status == Enums.OrderStatusType.Paid) ||
                                   (orderFilter.IsUnpaid && order.Status == Enums.OrderStatusType.Unpaid)) &&
                         (string.IsNullOrWhiteSpace(orderFilter.UserId) || order.UserId == orderFilter.UserId) &&
                         (orderFilter.PaymentId != null || order.PaymentId == orderFilter.PaymentId);
            }
            return(base.Get(filter, field, ascending, getRemoved)
                   .Skip((page - Constants.DEFAULTPREVIOUSPAGEOFFSET) * Constants.ORDERPAGESIZE)
                   .Take(Constants.ORDERPAGESIZE).ToList());
        }
Beispiel #28
0
        private string BuildFilter(OrderFilterModel orderFilter = null, bool getRemoved = false)
        {
            string paidFilter      = orderFilter.IsPaid ? $"o.Status={(int)Enums.OrderStatusType.Paid}" : string.Empty;
            string unpaidFilter    = orderFilter.IsUnpaid ? $"o.Status={(int)Enums.OrderStatusType.Unpaid}" : string.Empty;
            string paymentIdFilter = (orderFilter.PaymentId is not null) ? $"o.PaymentId={orderFilter.PaymentId}" : string.Empty;
            string userIdFilter    = !string.IsNullOrWhiteSpace(orderFilter.UserId) ? $"o.UserId='{orderFilter.UserId}'" : string.Empty;
            string removedFilter   = getRemoved ? "1" : "0";
            string filterString    = $"where o.IsRemoved={removedFilter}";

            if (!string.IsNullOrWhiteSpace(paidFilter) || !string.IsNullOrWhiteSpace(unpaidFilter))
            {
                filterString += " and (";
            }
            if (!string.IsNullOrWhiteSpace(paidFilter))
            {
                filterString += $" {paidFilter} ";
            }
            if (!string.IsNullOrWhiteSpace(paidFilter) && !string.IsNullOrWhiteSpace(unpaidFilter))
            {
                filterString += " or ";
            }
            if (!string.IsNullOrWhiteSpace(unpaidFilter))
            {
                filterString += $" {unpaidFilter} ";
            }
            if (!string.IsNullOrWhiteSpace(paidFilter) || !string.IsNullOrWhiteSpace(unpaidFilter))
            {
                filterString += ")";
            }
            if (!string.IsNullOrWhiteSpace(userIdFilter) || !string.IsNullOrWhiteSpace(paymentIdFilter))
            {
                filterString += " and ";
            }
            if (!string.IsNullOrWhiteSpace(userIdFilter))
            {
                filterString += $"{userIdFilter}";
            }
            if (!string.IsNullOrWhiteSpace(paymentIdFilter))
            {
                filterString += " and ";
            }
            if (!string.IsNullOrWhiteSpace(paymentIdFilter))
            {
                filterString += $"{paymentIdFilter}";
            }
            return(filterString);
        }
Beispiel #29
0
        public async Task <(IEnumerable <Order>, int)> GetFilteredOrdersAsync(OrderFilterModel model, PaginationFilterModel pagination)
        {
            var result = await _dbSet.Include(user => user.User)
                         .Include(orderItem => orderItem.OrderItems)
                         .ThenInclude(printingEdition => printingEdition.PrintingEdition)
                         .Where(order => model.Status == null || order.Status == model.Status)
                         .OrderBy($"{model.SortBy} {model.TypeSort}")
                         .ToListAsync();

            int countElement = result.Count();

            result = result.Skip((pagination.PageNumber - Constants.Page.PAGE_NUMBER) * pagination.PageSize).Take(pagination.PageSize).ToList();

            (IEnumerable <Order>, int)tupleResult = (result, countElement);

            return(tupleResult);
        }
Beispiel #30
0
        public PartialViewResult OrdersList(OrderFilterModel filter, int page = 1)
        {
            // get schedules from channel, start date
            DateTime startDate = DateTime.Now;

            if (!string.IsNullOrEmpty(filter.StartDate))
            {
                DateTime.TryParse(filter.StartDate, out startDate);
            }


            var schedules = _scheduleService.GetList(filter.IdChannel, startDate);

            // get orders
            List <Order> orders = new List <Order>();

            foreach (var item in schedules)
            {
                var ord = _orderService.GetList(item.IdSchedule, filter.SearchString, filter.Phone);
                if (ord.Any())
                {
                    orders.AddRange(ord);
                }
            }

            // setup data
            var model = _mapper.Map <IEnumerable <OrderItemModel> >(orders).ToPagedList(page, _pageSize);

            foreach (var item in model)
            {
                var seats = _orderDetailService.GetByOrderID(item.IdOrder);
                if (seats.Any())
                {
                    item.Seats      = string.Join(", ", seats.Select(o => o.SeatNumber));
                    item.IdSchedule = seats.Select(o => o.IdSchedule).First();
                }
            }

            // store filter
            ViewBag.SearchString = filter.SearchString;
            ViewBag.Phone        = filter.Phone;
            ViewBag.StartDate    = filter.StartDate;
            ViewBag.IdChannel    = filter.IdChannel;

            return(PartialView(model));
        }