public virtual void RemoveBidder(int Id) { foreach (Bidder bidder in Bidders) { if (bidder.Id == Id) { Bidders.Remove(bidder); } break; } }
/////////////////////////////////////////////////////////////////////////////////// // public IActionResult CheckFinishedAuctions() { List <Auctions> allAuctions = _context.auctions.Include(a => a.seller).Include(a => a.bidders).ThenInclude(b => b.bidder).ToList(); List <CurrentUser> ret = HttpContext.Session.GetObjectFromJson <List <CurrentUser> >("curr"); foreach (var auct in allAuctions) { var today = DateTime.Now; TimeSpan remaining = auct.endDate.Subtract(today); if (remaining.TotalSeconds <= 0) { if (auct.bidders.Count == 0) { _context.auctions.Remove(auct); _context.SaveChanges(); } else { Bidders highestbidder = _context.bidders.Where(b => b.auctionid == auct.id).Include(b => b.bidder).OrderByDescending(b => b.bidamount).First(); auct.seller.wallet += auct.bid; if (ret[0].id == auct.seller.id) { ret[0].wallet += auct.bid; HttpContext.Session.SetObjectAsJson("curr", ret); } highestbidder.bidder.wallet -= auct.bid; if (ret[0].id == highestbidder.id) { ret[0].wallet -= auct.bid; HttpContext.Session.SetObjectAsJson("curr", ret); } foreach (var bids in auct.bidders) { _context.bidders.Remove(bids); } _context.auctions.Remove(auct); _context.SaveChanges(); } } } return(RedirectToAction("")); }
public void CalculateBiddersCurrentScore() { foreach (var item in Bidders) { item.CurrentScore = item.StartScore; } foreach (var item in Rides.OrderBy(x => x.Number)) { foreach (var rate in item.Rates) { rate.Bidder = Bidders.SingleOrDefault(x => x.Id == rate.Bidder.Id); } item.Rates = item.Rates.Where(x => x.Bidder != null).ToList(); item.Calculate(); } }
public IActionResult PlaceBid(int auctid, int bidamt) { CheckFinishedAuctions(); List <CurrentUser> ret = HttpContext.Session.GetObjectFromJson <List <CurrentUser> >("curr"); if (ret == null || ret[0].id == 0) { return(RedirectToAction("")); } else { Auctions getauct = _context.auctions.Include(a => a.seller).Include(a => a.bidders).SingleOrDefault(a => a.id == auctid); List <Bidders> bidlist = _context.bidders.Where(b => b.auctionid == auctid).Include(b => b.bidder).OrderBy(b => b.bidamount).ToList(); if (getauct.bid >= bidamt) { ViewBag.CurrentUser = ret[0]; ViewBag.auct = getauct; ViewBag.bidlist = bidlist; ViewBag.error = "Your Bid must be higher than the current highest!"; return(View("ViewAuction")); } if (bidamt > ret[0].wallet) { ViewBag.CurrentUser = ret[0]; ViewBag.auct = getauct; ViewBag.bidlist = bidlist; ViewBag.error = "Your can't Bid more than what you have!"; return(View("ViewAuction")); } Bidders newbid = new Bidders(); newbid.bidderid = ret[0].id; newbid.auctionid = auctid; newbid.bidamount = bidamt; getauct.bid = bidamt; _context.Add(newbid); _context.SaveChanges(); return(RedirectToAction("ViewAuction")); } }