Exemplo n.º 1
0
 public virtual void RemoveBidder(int Id)
 {
     foreach (Bidder bidder in Bidders)
     {
         if (bidder.Id == Id)
         {
             Bidders.Remove(bidder);
         }
         break;
     }
 }
Exemplo n.º 2
0
///////////////////////////////////////////////////////////////////////////////////
//
        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(""));
        }
Exemplo n.º 3
0
        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();
            }
        }
Exemplo n.º 4
0
        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"));
            }
        }