Example #1
0
        public IActionResult Orders()
        {
            var          userId             = User.GetId();
            var          orders             = _dbContext.Orders.Where(o => o.UserId == userId);
            IOrderStates toShopOrderManager = new ToShopDeliveryOrder();
            IOrderStates toHomeOrderManager = new ToHomeDeliveryOrder();
            var          model = orders.Select(o => new OrderInfoViewModel()
            {
                OrderId    = o.Id,
                CreateDate = o.CreateDate,
                TotalPrice = o.TotalPrice,
                State      =
                    o.DeliveryMethod == DeliveryMethods.DeliveryToHome.GetString?
                    new OrderState()
                {
                    State = o.State, CssClass = toHomeOrderManager.GetStateCssClass(o.State)
                }:
                new OrderState()
                {
                    State = o.State, CssClass = toShopOrderManager.GetStateCssClass(o.State)
                },
            }).AsEnumerable();

            return(View(model));
        }
        public IActionResult Orders(AdminPanelOrdersViewModel model)
        {
            var orders = _dbContext.Orders.Where(x => x == x);

            if (model.QueryId != 0)
            {
                if (model.StringSearchBy == ((int)SearchByEnum.Order).ToString())
                {
                    orders = orders.Where(o => o.Id == model.QueryId);
                }
                if (model.StringSearchBy == ((int)SearchByEnum.User).ToString())
                {
                    orders = orders.Where(o => o.UserId == model.QueryId);
                }
            }
            var ordersInMemory = orders.ToList();

            IOrderStates toHomeDeliveryOrderManager = new ToHomeDeliveryOrder();
            IOrderStates toShopDeliveryOrderManager = new ToShopDeliveryOrder();
            var          ordersResult = ordersInMemory.Select(o => new AdminPanelOrderInfoViewModel()
            {
                OrderId    = o.Id,
                OwnerId    = o.UserId,
                CreateDate = o.CreateDate,
                OrderState = o.DeliveryMethod == DeliveryMethods.DeliveryToHome.GetString ?
                             new OrderState
                {
                    State    = o.State,
                    CssClass = toHomeDeliveryOrderManager.GetStateCssClass(o.State)
                }
                    :
                new OrderState
                {
                    State    = o.State,
                    CssClass = toShopDeliveryOrderManager.GetStateCssClass(o.State)
                }
            });

            var newModel = new AdminPanelOrdersViewModel()

            {
                Orders         = ordersResult,
                QueryId        = model.QueryId == 0 ? 1 : model.QueryId,
                StringSearchBy = model.StringSearchBy,
                SearchBy       = model.SearchBy == null ? new List <SelectListItem>()
                {
                    new SelectListItem("Номеру заказа", ((int)SearchByEnum.Order).ToString(), ((int)SearchByEnum.Order).ToString() == model.StringSearchBy? true : false),
                    new SelectListItem("Идентификатору пользователя", ((int)SearchByEnum.User).ToString(), ((int)SearchByEnum.User).ToString() == model.StringSearchBy? true : false)
                } : model.SearchBy
            };

            ModelState.Clear();
            TryValidateModel(newModel, nameof(newModel));
            return(View(newModel));
        }