Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
 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));
 }
Exemple #4
0
 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));
 }
Exemple #5
0
 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));
 }
Exemple #6
0
        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));
        }
Exemple #7
0
        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));
        }