コード例 #1
0
 public ActionResult Create(BidViewModel bid)
 {
     if(UserViewModel==null)
         return new HttpStatusCodeResult(401);
     if(UserViewModel.Banned)
         return new HttpStatusCodeResult(403);
     var ajaxRequest = Request.IsAjaxRequest();
     if (ModelState.IsValid)
     {
         
         if (!ajaxRequest)
             bid.LotId = bid.Id;
         var lot = _lotService.GetLotEntity(bid.LotId);
         if (lot == null)
         {
             if (ajaxRequest)
                 return new HttpStatusCodeResult(404, "Something went wrong with your request. Please try again later.");
             return new HttpStatusCodeResult(404);
         }
         if ((lot.LotClosed) || (lot.LotEnded))
         {
             if (ajaxRequest)
                 return new HttpStatusCodeResult(422, "You can't place bids on closed or ended lot");
             ModelState.AddModelError(string.Empty,"You can't place bids on closed or ended lot");
             return View(bid);
         }
         if (bid.Amount < lot.MinimalBet)
         {
             if (ajaxRequest)
                 return new HttpStatusCodeResult(422, "Your bid's amount can't be less than Minimal Bid Amount (starting bid)");
             ModelState.AddModelError(string.Empty, "Your bid's amount can't be less than Minimal Bid Amount (starting bid)");
             return View(bid);
         }
         bid.Placed=DateTime.Now;
         bid.UserId = UserViewModel.Id;
         var bidEntity = bid.ToBidEntity();
         try
         {
             _bidService.AddBid(bidEntity);
         }
         catch (BllBidTooLowException)
         {
             if(ajaxRequest)
                 return new HttpStatusCodeResult(422, "Your bid's amount too low. (There is already a bid with higher amount)");
             ModelState.AddModelError(string.Empty, "Your bid's amount too low. (There is already a bid with higher amount)");
             return View(bid);
         }
         if(ajaxRequest)
             return Content("");
         return RedirectToAction("Details", "Lot", new { id = lot.Id });
     }
     if (ajaxRequest)
         return new HttpStatusCodeResult(422, "Incorrect data!");
     return View(bid);
 }
コード例 #2
0
 public ActionResult Create(int? id)
 {
     if(UserViewModel==null)
         return new HttpStatusCodeResult(401);
     if(id==null)
         return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
     var lot = _lotService.GetLotEntity(id.Value);
     if (lot.CreatedByUserId == UserViewModel.Id)
     {
         TempData["error"] = "You cannot bid on you own lots!";
         return RedirectToAction("Details","Lot",new {id=lot.Id});
     }
     var vm = new BidViewModel
     {
         LotId = lot.Id,
         Lot = lot.ToLotViewModel()
     };
     return View(vm);
 }