public async Task <ActionResult> MakeBid(AuctionDetailViewModel model) { model.NewBid.AuctionId = model.Auction.Id; model.NewBid.BuyerId = (await UserFacade.GetUserAccordingToUsernameAsync(User.Identity.Name)).Id; model.NewBid.NewItemPrice = model.Auction.ActualPrice + model.NewBid.BidAmount; model.NewBid.Time = DateTime.Now; await AuctionProcessFacade.MakeBidToAuction(model.NewBid); return(RedirectToAction("Index")); }
/// <summary> /// Initializes new AuctionListViewModel according to its parameters /// </summary> /// <param name="result">Auction list query result containing auctions page and related data</param> /// <param name="categories">List of category trees</param> /// <returns>Initialized instance of AuctionListViewModel</returns> private async Task <AuctionListViewModel> InitializeProductListViewModel( QueryResultDto <AuctionDto, AuctionFilterDto> result, IList <CategoryDto> categories = null) { return(new AuctionListViewModel { Auctions = new StaticPagedList <AuctionDto>(result.Items, result.RequestedPageNumber ?? 1, PageSize, (int)result.TotalItemsCount), Categories = categories ?? await AuctionProcessFacade.GetAllCategoriesAsync() as IList <CategoryDto>, Filter = result.Filter }); }
public async Task <ActionResult> Index(AuctionListViewModel model) { model.Filter.PageSize = PageSize; //model.Filter.CategoryIds = ProcessCategoryIds(model); Session[FilterSessionKey] = model.Filter; Session[CategoryTreesSessionKey] = model.Categories; var result = await AuctionProcessFacade.GetAuctionsAsync(model.Filter); var newModel = await InitializeProductListViewModel(result, model.Categories); return(View("AuctionListView", newModel)); }
public async Task <ActionResult> Details(Guid id) { var model = new AuctionDetailViewModel { Auction = await AuctionProcessFacade.GetAuctionAsync(id), NewBid = new BidDto(), Bids = (await AuctionProcessFacade.GetBidsToAuctionAsync(id)).OrderBy(bid => bid.Time).ToList(), Comments = (await UserInteractionFacade.GetCommentsAccordingToAuction(id)).OrderBy(com => com.Time).ToList(), NewComment = new CommentDto() }; model.NewBid.BidAmount = model.Auction.MinimalBid; return(View("AuctionDetailView", model)); }
public async Task <ActionResult> Index(int page = 1) { var filter = Session[FilterSessionKey] as AuctionFilterDto ?? new AuctionFilterDto { PageSize = PageSize /*, OnlyActive = true*/ }; filter.RequestedPageNumber = page; var result = await AuctionProcessFacade.GetAuctionsAsync(filter); var categoryTrees = Session[CategoryTreesSessionKey] as IList <CategoryDto>; var model = await InitializeProductListViewModel(result, categoryTrees); return(View("AuctionListView", model)); }
public async Task <ActionResult> Buyout(AuctionDetailViewModel model) { var auction = await AuctionProcessFacade.GetAuctionAsync(model.Auction.Id); var bid = new BidDto { AuctionId = auction.Id, BuyerId = (await UserFacade.GetUserAccordingToUsernameAsync(User.Identity.Name)).Id, BidAmount = auction.BuyoutPrice - auction.ActualPrice, NewItemPrice = auction.BuyoutPrice, Time = DateTime.Now }; await AuctionProcessFacade.BuyoutAuction(auction, bid); return(RedirectToAction("Index")); }
public async Task <ActionResult> Create(AuctionEditModel model) { try { model.Auction.StartTime = DateTime.Now; model.Auction.Ended = false; model.Auction.SellTime = null; model.Auction.DisplayCount = 0; model.Auction.ActualPrice = model.Auction.StartingPrice; await AuctionProcessFacade.CreateAuctionWithCategoryNameForUserAsync(model.Auction, User.Identity.Name, model.Category.Name); return(RedirectToAction("Index")); } catch { return(View()); } }