public ActionResult Create(AuctionItemCreateViewModel v) { DateTime minDate = DateTime.Now; DateTime maxDate = minDate.AddDays(7); bool isEndDateValid = v.EndDateTime > minDate && v.EndDateTime < maxDate; if (ModelState.IsValid && isEndDateValid) { List <ItemImage> images = new List <ItemImage>(); for (int i = 0; i < Request.Files.Count; i++) { HttpPostedFileBase file = Request.Files[i]; if (file.ContentLength > 0 && file.ContentLength <= 4194304 && (file.ContentType == "image/gif" || file.ContentType == "image/jpeg" || file.ContentType == "image/png")) { images.Add(new ItemImage(BlobStorageHelper.UploadBlob(User.Identity.GetUserId(), Guid.NewGuid().ToString(), file))); } } var a = new AuctionItem(v, CategoryDB.GetCategoryByID(db, v.SelectedCategory), ApplicationUserDB.GetUserByID(db, User.Identity.GetUserId()), images); AuctionItemDB.Create(db, a); return(RedirectToAction("Index", "AuctionItem")); } if (!isEndDateValid) { ModelState.AddModelError("EndDateTime", $"Auction item end time must be between {minDate} and {maxDate}"); } return(View(v)); }
public ActionResult ViewBids() { List <AuctionItem> items = AuctionItemDB.GetUserBiddedAuctionItems(db, User.Identity.GetUserId()); var viewItems = new List <AuctionItemBidViewModel>(); foreach (AuctionItem i in items) { viewItems.Add(new AuctionItemBidViewModel(i, AuctionItemBidViewModel.GetBidByUserID(i.Bids, User.Identity.GetUserId()))); } return(View(viewItems)); }
public ActionResult Details(int?id) { if (id.HasValue) { AuctionItem a = AuctionItemDB.GetAuctionItemByID(db, id.Value); if (a != null) { return(View(a)); } } return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); }
public ActionResult Update(AuctionItemCreateViewModel v) { if (ModelState.IsValid) { var a = new AuctionItem(v, CategoryDB.GetCategoryByID(db, v.SelectedCategory), ApplicationUserDB.GetUserByID(db, User.Identity.GetUserId())); if (AuctionItemDB.Update(db, a)) { return(RedirectToAction("Index", "AuctionItem")); } ModelState.AddModelError("UpdateFailed", "Currently logged in user is not the owner of this item."); } return(View(v)); }
public ActionResult Update(int?id) { if (id.HasValue) { AuctionItem a = AuctionItemDB.GetAuctionItemByID(db, id.Value); if (a != null) { var v = new AuctionItemCreateViewModel(a); return(View(v)); } } return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); }
public ActionResult Index() { List <AuctionItem> items = AuctionItemDB.GetAllAuctionItems(db); foreach (var item in items) { if (item.Images.Count < 1) { item.Images.Add(ItemImage.DefaultImage()); } } return(View(items)); }
public ActionResult Bid(int?AuctionItemID, decimal amount) { if (AuctionItemID.HasValue) { AuctionItem a = AuctionItemDB.GetAuctionItemByID(db, AuctionItemID.Value); if (a != null) { if (a.User.Id == User.Identity.GetUserId() || amount < a.MinPrice) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } BidDB.CreateOrUpdate(db, new Bid(User.Identity.GetUserId(), AuctionItemID.Value, amount)); return(RedirectToAction("Details", new { id = a.AuctionItemID })); } } return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); }