コード例 #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            LastBidder lastBidder = db.LastBidders.Find(id);

            db.LastBidders.Remove(lastBidder);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #2
0
 public ActionResult Edit([Bind(Include = "IdLastBid,IdAuction,IdUser,Status_")] LastBidder lastBidder)
 {
     if (ModelState.IsValid)
     {
         db.Entry(lastBidder).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.IdUser    = new SelectList(db.AspNetUsers, "Id", "FirstName", lastBidder.IdUser);
     ViewBag.IdAuction = new SelectList(db.Auctions, "IdAuction", "productName", lastBidder.IdAuction);
     return(View(lastBidder));
 }
コード例 #3
0
        // GET: LastBidders/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            LastBidder lastBidder = db.LastBidders.Find(id);

            if (lastBidder == null)
            {
                return(HttpNotFound());
            }
            return(View(lastBidder));
        }
コード例 #4
0
        // GET: LastBidders/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            LastBidder lastBidder = db.LastBidders.Find(id);

            if (lastBidder == null)
            {
                return(HttpNotFound());
            }
            ViewBag.IdUser    = new SelectList(db.AspNetUsers, "Id", "FirstName", lastBidder.IdUser);
            ViewBag.IdAuction = new SelectList(db.Auctions, "IdAuction", "productName", lastBidder.IdAuction);
            return(View(lastBidder));
        }
コード例 #5
0
        public void Send(int IdAuction)
        {
            String userEmail = Context.User.Identity.Name;

            Model1 db      = new Model1();
            var    auction = db.Auctions.Find(IdAuction);
            var    user    = db.AspNetUsers.SingleOrDefault(a => a.Email == userEmail);

            lock (mutex.locky)
            {
                if (auction.stage != "OPEN")
                {
                    return;
                }
                if (auction.LastBidders.Count == 0)
                {
                    if (user.numOfTokens < (auction.price + (long)auction.priceChange))
                    {
                        Clients.All.tokenswarning(userEmail); return;
                    }

                    user.numOfTokens    -= (auction.price + (long)auction.priceChange);
                    auction.priceChange += 1;


                    LastBidder lastBidder = new LastBidder();
                    lastBidder.AspNetUser = user;
                    lastBidder.Auction    = auction;
                    lastBidder.Status_    = auction.stage;
                    db.LastBidders.Add(lastBidder);
                }
                else
                {
                    LastBidder lastBidder = db.LastBidders.SingleOrDefault(a => a.Auction.IdAuction == IdAuction);
                    if (lastBidder.AspNetUser.Email == userEmail)
                    {
                        if (user.numOfTokens == 0)
                        {
                            Clients.All.tokenswarning(userEmail); return;
                        }
                        user.numOfTokens    -= 1;
                        auction.priceChange += 1;
                    }
                    else
                    {
                        if (user.numOfTokens < (auction.price + (long)auction.priceChange))
                        {
                            Clients.All.tokenswarning(userEmail); return;
                        }
                        user.numOfTokens -= (auction.price + (long)auction.priceChange);
                        lastBidder.AspNetUser.numOfTokens += (auction.price + (long)auction.priceChange - 1);
                        auction.priceChange += 1;

                        Clients.All.tokens(lastBidder.AspNetUser.numOfTokens, lastBidder.AspNetUser.Email);

                        db.Entry(lastBidder.AspNetUser).State = EntityState.Modified;
                        lastBidder.AspNetUser      = user;
                        db.Entry(lastBidder).State = EntityState.Modified;
                    }
                }

                if (auction.duration < 10L)
                {
                    auction.duration = 10L;
                }

                db.Entry(user).State    = EntityState.Modified;
                db.Entry(auction).State = EntityState.Modified;
                Bid bid = new Bid();
                bid.Auction    = auction;
                bid.AspNetUser = user;
                bid.Date       = DateTime.Now;
                db.Bids.Add(bid);

                db.SaveChanges();
                TimeSpan time  = TimeSpan.FromSeconds(auction.duration);
                String   timeS = time.ToString(@"dd\:hh\:mm\:ss");
                Clients.All.timerTick(auction.IdAuction, auction.stage, timeS, userEmail, (auction.price + auction.priceChange));
                Clients.All.tokens(user.numOfTokens, userEmail);
            }
        }