Пример #1
0
        // Obscure naming convention bug with EF - don't name parameters the same as model properties...
        // http://www.martin-brennan.com/net-mvc-4-model-binding-null-on-post/
        public ActionResult Create(ItemBid bidd)
        {
            var allBids = from b in _db.ItemBids
                          join i in _db.Items
                          on b.ItemId equals i.Id
                          where i.Id == bidd.ItemId
                          orderby b.Bid descending
                          select b;

            var minumItemBid = from i in _db.Items
                               where i.Id == bidd.ItemId
                               select i;

            int minumBid = allBids.Any() ? Math.Max(allBids.First().Bid, minumItemBid.First().MinimumBid) : minumItemBid.First().MinimumBid;

            // for this to work, make sure to set     @Html.ValidationSummary(false) in the Create.cshtml View
            if (bidd.Bid <= minumBid)
            {
                ModelState.AddModelError("Bid", "Bid must be greater than $" + minumBid.ToString());
            }
            else
            {
                bidd.UserId = (int)Membership.GetUser().ProviderUserKey;
            }

            if (ModelState.IsValid)
            {
                _db.ItemBids.Add(bidd);
                _db.SaveChanges();
                //return RedirectToAction("Index", "Bids", new { id = bidd.ItemId });
                return(RedirectToAction("Index", "Home"));
            }
            return(View(bidd));
        }
Пример #2
0
        public ActionResult Create(int itemId)
        {
            var allBids = from b in _db.ItemBids
                          join i in _db.Items
                          on b.ItemId equals i.Id
                          where i.Id == itemId
                          orderby b.Bid descending
                          select b;

            var minumItemBid = from i in _db.Items
                               where i.Id == itemId
                               select i;

            int highestBid = allBids.Any() ? Math.Max(allBids.First().Bid, minumItemBid.First().MinimumBid) : minumItemBid.First().MinimumBid;

            object userId = Membership.GetUser().ProviderUserKey;
            var    myBid  = new ItemBid();

            myBid.Bid    = highestBid + 1;
            myBid.ItemId = itemId;
            myBid.UserId = (int)userId;

            return(View(myBid));
        }