public static BidsModel GetMaxBidOfAuction(string id, BidContext context) { List <BidsModel> bids = context.Bids.Where(x => x.AuctionId == id).ToList(); if (bids.Count > 0) { BidsModel bm = bids.MaxBy(x => x.Value); return(bm); } else { return(null); } }
public static string SetWinnerID(Auction auc) { BidContext bc = new BidContext(); BidsModel bm = GetMaxBidOfAuction(auc.Id, bc); if (bm != null) { return(bm.AuctionId); } else { return(null); } }
private void PassAuction(decimal price) { priceTextBox.BackColor = System.Drawing.Color.Empty; BidsModel bidsModel = new BidsModel() { AuctionId = Id, UserId = HttpContext.Current.User.Identity.GetUserId(), Id = Guid.NewGuid().ToString(), Value = price, }; bidContext.Bids.Add(bidsModel); bidContext.SaveChanges(); ExtensionMethods.RefreshDB(); Response.Redirect("/AuctionDetails?Id=" + Id); }
public bool CheckIfEndingPriceIsOk(BidsModel bid) { if (bid == null) { return(true); } var auc = GetSingleElementByID(bid.AuctionId); if (auc.EndingPrice < bid.Value) { auc.EndingPrice = bid.Value; Update(auc); Save(); return(true); } return(false); }
public static void RefreshDB() { AuctionContext ac = new AuctionContext(); BidContext bc = new BidContext(); foreach (Auction item in ac.Auctions) { if (DateTime.Now >= item.DateCreated.AddDays(item.ExpiresIn)) { item.IsEnded = true; item.WinnerId = ExtensionMethods.SetWinnerID(item); } BidsModel MaxBid = ExtensionMethods.GetMaxBidOfAuction(item.Id, bc, item); if (MaxBid != null) { item.EndingPrice = MaxBid.Value; } } ac.SaveChanges(); }