private async Task <AuctionDetailViewModel> InitializeAuctionDetailViewModel(AuctionDTO auction)
        {
            var model = new AuctionDetailViewModel {
                Name = auction.Name
            };
            var result = await AccountFacade.GetAccountAccordingToIdAsync(auction.AccountId);

            model.Bids = new List <Pair <AccountAuctionRelationDTO, AccountDTO> >();
            var bidsList = (await AuctionFacade.GetAllBidsAccordingToAuction(auction.Id)).ToList().OrderBy(x => x.BidDateTime);

            foreach (var bid in bidsList)
            {
                model.Bids.Add(new Pair <AccountAuctionRelationDTO, AccountDTO>(bid, await AccountFacade.GetAccountAccordingToIdAsync(bid.AccountId)));
            }
            model.AccountFullName = result.FirstName + " " + result.LastName;
            model.Description     = auction.Description;
            model.ClosingTime     = auction.ClosingTime;
            var products = await ProductFacade.GetAllProductsInAuction(auction.Id);

            model.Products          = products.ToList();
            model.ActualPrice       = auction.ActualPrice;
            model.IsOpened          = auction.IsOpened;
            model.Id                = auction.Id;
            model.AuctionOwnerEmail = result.Email;
            model.CategoryId        = auction.CategoryId.ToString();
            var categories = await AuctionFacade.GetAllCategories();

            model.CategoriesSelectList = new List <SelectListItem>();
            foreach (var category in categories)
            {
                model.CategoriesSelectList.Add(new SelectListItem {
                    Text = category.Name, Value = category.Id.ToString()
                });
            }


            return(model);
        }