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()); }
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()); }
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); }