public async Task <ActionResult> Bid(BuyItemView viewCollection) { if (await services.UserClient().CheckTokenTimeAsync(SessionPersister.Token)) { // no bid there right now if (viewCollection.ServiceItem.WinningBid != null) { // check if the amount is higher than the previous bid if (viewCollection.WebItem.Amount <= viewCollection.ServiceItem.WinningBid.Amount) { Information("Your offer is too low! "); return(View(viewCollection)); } } // offer is beneath the initial price if (viewCollection.WebItem.Amount <= viewCollection.ServiceItem.InitialPrice) { Information("Your offer is too low! "); return(View(viewCollection)); } // seller and buyer is the same if (string.Equals(SessionPersister.Username, viewCollection.ServiceItem.SellerUser.UserName)) { Danger("You can't bid on your own item "); return(View(viewCollection)); } // Place bid if (await services.BidClient().BidOnItemAsync(viewCollection.WebItem.ItemId, viewCollection.WebItem.Amount, SessionPersister.Token)) { viewCollection.ServiceItem = null; viewCollection.WebItem.Amount = 0; viewCollection.ServiceItem = await services.ItemClient().GetItemByIdAsync(viewCollection.WebItem.ItemId); Success("Your bid was placed"); return(View(viewCollection)); } Danger("Your bid was not placed"); return(View(viewCollection)); } else { SessionPersister.Logout(); Danger("Your session timed out"); return(RedirectToAction("Login", "Account")); } }
public async Task <ActionResult> Bid() { string s = Request.QueryString["itemId"]; if (string.IsNullOrEmpty(s)) { return(RedirectToAction("Listing", "Item")); } // Create viewmodel BuyItemView view = new BuyItemView(); view.ServiceItem = await services.ItemClient().GetItemByIdAsync(Int32.Parse(s)); view.WebItem = new Item { ItemId = Int32.Parse(s) }; if (!string.IsNullOrEmpty(SessionPersister.Username)) { view.WebItem.BuyerName = SessionPersister.Username; } return(View(view)); }