/** * Purpose: Post method that takes a new item and saves it to the DB * Arguments: * model - contains all the neccessary properties that are needed to put a new item up for sale * Return: * redirects to the main view of yardsale products "YardSale/Index" */ public async Task <IActionResult> AddNewItem(YardSaleNewItemViewModel model) { var uploads = Path.Combine(_environment.WebRootPath, "images"); YardSaleItem NewItem = new YardSaleItem { DatePosted = DateTime.Now, ItemDescription = model.NewItem.ItemDescription, ItemName = model.NewItem.ItemName, ItemPrice = model.NewItem.ItemPrice, PostingUserId = ActiveUser.Instance.User.UserId, ItemImage1 = model.NewItemImages[0].FileName, Category = model.NewItem.Category, }; NewItem.ItemImage2 = (model.NewItemImages.Count > 1) ? model.NewItemImages[1].FileName : null; NewItem.ItemImage3 = (model.NewItemImages.Count > 2) ? model.NewItemImages[2].FileName : null; NewItem.ItemImage4 = (model.NewItemImages.Count > 3) ? model.NewItemImages[3].FileName : null; context.YardSaleItem.Add(NewItem); foreach (var image in model.NewItemImages) { if (image != null && image.ContentType.Contains("image")) { using (var fileStream = new FileStream(Path.Combine(uploads, image.FileName), FileMode.Create)) { await image.CopyToAsync(fileStream); } } } await context.SaveChangesAsync(); return(RedirectToAction("Index", "YardSale")); }
/** * Purpose: Returns the main view for the form to create a new item for sale * Arguments: * None * Return: * returns the view to the form in order to create a new product */ public IActionResult NewItem() { YardSaleNewItemViewModel model = new YardSaleNewItemViewModel(context); model.UserStyle = context.Style.Where(u => u.UserId == ActiveUser.Instance.User.UserId).SingleOrDefault(); return(View(model)); }