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);
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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();
        }