Exemplo n.º 1
0
        public async Task <IActionResult> Card(string sortType,
                                               int?minPrice,
                                               int?maxPrice,
                                               int?currentPosition,
                                               string select)
        {
            if (User.Identity.IsAuthenticated)
            {
                FilterOrders filterUserOrders = new FilterOrders(selectFromSelectList: select,
                                                                 minPrice: minPrice,
                                                                 maxPrice: maxPrice,
                                                                 countVisablePozitins: 3,
                                                                 currentPozition: currentPosition,
                                                                 sortType: sortType);

                string loadCurrentPosition = _session.GetString("CurrentPositionProduct");
                if (loadCurrentPosition != null)
                {
                    filterUserOrders.CurrentPosition = Convert.ToInt32(loadCurrentPosition);
                    _session.Remove("CurrentPositionProduct");
                }
                UserCardAndFilters userCard = await _dataProcessingConveyor.GetUserCardAndFiltersAsync(User.Identity.Name, filterUserOrders);

                return(View(userCard));
            }
            return(NotFound());
        }
Exemplo n.º 2
0
        public async Task <IActionResult> CardAjax(string sortType,
                                                   int?minPrice,
                                                   int?maxPrice,
                                                   int?currentPosition,
                                                   string select)
        {
            if (User.Identity.IsAuthenticated)
            {
                FilterOrders filterUserOrders = new FilterOrders(selectFromSelectList: select,
                                                                 minPrice: minPrice,
                                                                 maxPrice: maxPrice,
                                                                 countVisablePozitins: 3,
                                                                 currentPozition: currentPosition,
                                                                 sortType: sortType);
                UserCardAndFilters userCard = await _dataProcessingConveyor.GetUserCardAndFiltersAsync(User.Identity.Name, filterUserOrders);

                return(new JsonResult(new
                {
                    orders = userCard.Orders.Select(t => new
                    {
                        jsId = t.Id,
                        jsDataReservation = t.DataReservation.ToShortDateString(),
                        jsOrderStatusId = t.StatusId,
                        jsStatus = t.StatusName,
                        jsTotalFixPrice = t.TotalFixCost,
                        jsCurrentPosition = currentPosition
                    }).ToList()
                    ,
                    orderPositions = userCard.OrderPositions.Select(t => new
                    {
                        jsCount = t.Count,
                        jsFixPrice = t.FixPrice,
                        jsMainPicturePath = t.MainPicturePath,
                        jsOrderId = t.OrderId,
                        jsProductId = t.ProductId,
                        jsProductName = t.ProductName,
                        jsProductTypeName = t.ProductTypeName
                    }).ToList()
                }));
            }
            return(NotFound());
        }
Exemplo n.º 3
0
        public async Task <UserCardAndFilters> GetUserCardAndFiltersAsync(string userName, FilterOrders filters)
        {
            UserCardAndFilters result = new UserCardAndFilters
            {
                Filters       = filters,
                SortEnumArray = sortEnumArrayUserOrder
            };
            string keyName     = $"UserCardAndFilters{userName}{filters.GetFilterName()}";
            var    cacheResult = _cacheService.Get <UserCardAndFilters>(keyName);

            if (cacheResult == null)
            {
                cacheResult = new UserCardAndFilters
                {
                    Filters       = filters,
                    SortEnumArray = sortEnumArrayUserOrder
                };
                User user = await _fcdUserAndSignManager.GetUserAsync(userName);

                cacheResult.SetUserCardMini(user);
                if (user != null)
                {
                    UserCardAndFilters userOrderAndOrderPositions = await _fcdStoreContext.GetUserOrdersAndOrderPositionsAsync(user.Id, (int)filters.CurrentPosition);

                    cacheResult.Orders         = userOrderAndOrderPositions.Orders;
                    cacheResult.OrderPositions = userOrderAndOrderPositions.OrderPositions;
                }
                _dataFiltering.Filtering(cacheResult);
                _cacheService.Set <UserCardAndFilters>(keyName, cacheResult);
            }
            result.Id             = cacheResult.Id;
            result.Name           = cacheResult.Name;
            result.Email          = cacheResult.Email;
            result.Orders         = cacheResult.Orders;
            result.OrderPositions = cacheResult.OrderPositions;
            _dataFiltering.SetFilters(result);
            result.Orders = _dataFiltering.Paginator <OrderMini>(result.Orders, (int)filters.CountVisablePositions, (int)filters.CurrentPosition);
            return(result);
        }