Пример #1
0
        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"));
            }
        }
Пример #2
0
        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));
        }