public async Task <ActionResult> Index(string lang = "en-Us", string auction = "Auction1", int page = 1)
        {
            var auctionModel = config.AuctionHouses.Search(auction);

            if (auctionModel != null)
            {
                Auctions.SetAuction(auctionModel);
            }
            else
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var listProducts = await _productService.ShowAwalaibleProductsAsync();

            if (listProducts.IsNullOrEmpty())
            {
                return(View("~/Views/Home/EmptyModel.cshtml"));
            }

            PageInfo pageInfo = new PageInfo {
                PageNumber = page, TotalItems = listProducts.Count()
            };

            var listLastBid = await _bidService.ShowLastBidForListProductAsync(listProducts);

            var listViewProducts = listProducts.Select(pr => new ProductClientViewModel
            {
                Id          = pr.Id,
                CategoryID  = pr.CategoryID,
                Description = pr.Description,
                Duration    = pr.Duration.TotalSeconds,
                Name        = pr.Name,
                Picture     = pr.Picture,
                StartDate   = pr.StartDate,
                StartPrice  = pr.StartPrice
            });

            IEnumerable <ProductClientViewModel> productPerPages = listViewProducts.Skip((page - 1) * pageInfo.PageSize).Take(pageInfo.PageSize);

            var listBidViewModel = listLastBid.Select(b => Mapper.Map <BidViewModel>(b));
            var userResult       = await _customUserManager.GetAllUsersAsync();

            var userVM = userResult.Select(u => Mapper.Map <ProfileViewModel>(u));
            ProductsWithBidViewModel categoryWithBids = new ProductsWithBidViewModel()
            {
                Products = productPerPages,
                PageInfo = pageInfo,
                Bids     = listBidViewModel,
                Users    = userVM
            };

            ViewBag.BidStep = BidStep;
            ViewBag.Auction = auctionModel.Name;
            return(View("~/Views/Home/Index.cshtml", categoryWithBids));
        }
        public async Task <Dictionary <string, IEnumerable <BidViewModel> > > GetBidsFromListProduct([FromBody] IEnumerable <ProductsListWithAuction> products)
        {
            if (products.FirstOrDefault() == null)
            {
                return(null);
            }

            Dictionary <string, IEnumerable <BidViewModel> > listlastBids = new Dictionary <string, IEnumerable <BidViewModel> >();

            foreach (var productList in products)
            {
                var auction = config.AuctionHouses.Search(productList.Auction);
                if (auction != null)
                {
                    Auctions.SetAuction(auction);

                    var productsDTO = productList.Products.Select(pr => Mapper.Map <BussinessLogic.Models.ProductDTO>(pr));
                    var listLastBid = await _bidService.ShowLastBidForListProductAsync(productsDTO);

                    var listBidVM = listLastBid.Select(b => Mapper.Map <BidViewModel>(b));

                    listlastBids.Add(productList.Auction, listBidVM);
                }
            }

            return(listlastBids);
        }