예제 #1
0
        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);
        }
    }
예제 #2
0
        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;
        }
예제 #4
0
        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);
        }
예제 #5
0
        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));
        }