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