public static IQueryable <Order> SortBy(this IQueryable <Order> orders, OrderSortState sortState = OrderSortState.DateOfCreatingAsc) { orders = sortState switch { OrderSortState.CustomerAsc => orders.OrderBy(ord => ord.Customer.Name), OrderSortState.CustomerDesc => orders.OrderByDescending(ord => ord.Customer.Name), OrderSortState.DateOfCreatingDesc => orders.OrderByDescending(ord => ord.DateOfCreating), OrderSortState.DateOfCreatingAsc => orders.OrderBy(ord => ord.DateOfCreating), OrderSortState.IdAcs => orders.OrderBy(ord => ord.Id), OrderSortState.IdDecs => orders.OrderByDescending(ord => ord.Id), OrderSortState.OrderInFactoryAsc => orders.OrderBy(ord => ord.OrderInFactory), OrderSortState.OrderInFactoryDesc => orders.OrderByDescending(ord => ord.OrderInFactory), OrderSortState.ManagerAsc => orders.OrderBy(ord => ord.Manager.Name), OrderSortState.ManagerDesc => orders.OrderByDescending(ord => ord.Manager.Name), OrderSortState.OrderStateAsc => orders.OrderBy(ord => ord.OrderState), OrderSortState.OrderStateDesc => orders.OrderByDescending(ord => ord.OrderState), OrderSortState.ShipmentDestinationAsc => orders.OrderBy(ord => ord.ShipmentDestination.Destination), OrderSortState.ShipmentDestinationDesc => orders.OrderByDescending(ord => ord.ShipmentDestination.Destination), OrderSortState.ShipmentSpecialistAsc => orders.OrderBy(ord => ord.ShipmentSpecialist.Specialist), OrderSortState.ShipmentSpecialistDesc => orders.OrderByDescending(ord => ord.ShipmentSpecialist.Specialist), _ => orders.OrderByDescending(ord => ord.DateOfCreating) }; return(orders); } }
public IActionResult ChangeSort(OrderSortState orderSortState) { OrderManagerState ordersState = HttpContext.Session.Get <OrderManagerState>("orderManagerState"); ordersState.SortState.CurrentSort = orderSortState; SaveOrderManagerState(ordersState); return(RedirectToAction("OrderManager")); }
public OrderSortViewModel(OrderSortState sortState) { StartDateSort = sortState == OrderSortState.StartDateAsc ? OrderSortState.StartDateDes : OrderSortState.StartDateAsc; ClientSort = sortState == OrderSortState.ClientTitleAsc ? OrderSortState.ClientTitleDes : OrderSortState.ClientTitleAsc; IdSort = sortState == OrderSortState.OrderIdAsc ? OrderSortState.OrderIdDes : OrderSortState.OrderIdAsc; Current = sortState; }
public IQueryable <Order> Process(IQueryable <Order> orderIQ) { if (SortOrder == 0) { SortOrder = SortState; } else { SortState = SortOrder; } OrderNumberSort = SortOrder == OrderSortState.OrderNumberAsc ? OrderSortState.OrderNumberDesc : OrderSortState.OrderNumberAsc; OrderPrintDateSort = SortOrder == OrderSortState.OrderPrintDateAsc ? OrderSortState.OrderPrintDateDesc : OrderSortState.OrderPrintDateAsc; AgencyCompanyNameSort = SortOrder == OrderSortState.AgencyCompanyNameAsc ? OrderSortState.AgencyCompanyNameDesc : OrderSortState.AgencyCompanyNameAsc; ManagerNameSort = SortOrder == OrderSortState.ManagerNameAsc ? OrderSortState.ManagerNameDesc : OrderSortState.ManagerNameAsc; CustomerNameSort = SortOrder == OrderSortState.CustomerNameAsc ? OrderSortState.CustomerNameDesc : OrderSortState.CustomerNameAsc; switch (SortOrder) { case OrderSortState.OrderNumberAsc: orderIQ = orderIQ.OrderBy(o => o.Number); break; case OrderSortState.OrderPrintDateAsc: orderIQ = orderIQ.OrderBy(o => o.DatePrint); break; case OrderSortState.OrderPrintDateDesc: orderIQ = orderIQ.OrderByDescending(o => o.DatePrint); break; case OrderSortState.AgencyCompanyNameAsc: orderIQ = orderIQ.OrderBy(o => o.AgencyCompany.Name); break; case OrderSortState.AgencyCompanyNameDesc: orderIQ = orderIQ.OrderByDescending(o => o.AgencyCompany.Name); break; case OrderSortState.ManagerNameAsc: orderIQ = orderIQ.OrderBy(o => o.Manager.Person.Surname); break; case OrderSortState.ManagerNameDesc: orderIQ = orderIQ.OrderByDescending(o => o.Manager.Person.Surname); break; case OrderSortState.CustomerNameAsc: orderIQ = orderIQ.OrderBy(o => o.Customer.Person.Surname); break; case OrderSortState.CustomerNameDesc: orderIQ = orderIQ.OrderByDescending(o => o.Customer.Person.Surname); break; default: orderIQ = orderIQ.OrderByDescending(o => o.Number); break; } return(orderIQ); }
public IActionResult ChangeableOrderList(int masterId = 0, int page = 1, int order = 0, int client = 0, OrderStatus status = OrderStatus.All, OrderSortState sortState = OrderSortState.OrderIdAsc) { ViewBag.MId = masterId; ViewBag.Len = pageSize; IEnumerable <Order> orders = _orderServices.Read(minMasterId: masterId, maxMasterId: masterId, minClientId: client, maxClientId: client, minId: order, maxId: order); switch (status) { case OrderStatus.Completed: orders = orders.Where(x => x.CompletionDate != null); break; case OrderStatus.Outstanding: orders = orders.Where(x => x.CompletionDate == null); break; } var res = orders.Select(x => new OrderMin { Id = x.Id, StartDate = x.StartDate, Client = _clientServices.Read(MinId: x.ClientId, MaxId: x.ClientId).FirstOrDefault() }); switch (sortState) { case OrderSortState.ClientTitleAsc: res = res.OrderBy(x => x.Client.Title); break; case OrderSortState.OrderIdAsc: res = res.OrderBy(x => x.Id); break; case OrderSortState.StartDateAsc: res = res.OrderBy(x => x.StartDate); break; case OrderSortState.ClientTitleDes: res = res.OrderByDescending(x => x.Client.Title); break; case OrderSortState.OrderIdDes: res = res.OrderByDescending(x => x.Id); break; default: res = res.OrderByDescending(x => x.StartDate); break; } ; int count = res.Count(); var Items = res.Skip((page - 1) * pageSize).Take(pageSize).ToList(); OrderListViewModel data = new OrderListViewModel() { Standarts = Items, PageViewModel = new PageViewModel(count, page, pageSize), SortViewModel = new OrderSortViewModel(sortState), FilterViewModel = new OrderFilterViewModel(Items.Select(y => y.Client).ToList(), order, client, status) }; return(View(data)); }