public async Task <IActionResult> Edit(Page page) { if (ModelState.IsValid) { page.Slug = page.Id == 1 ? "home" : page.Title.ToLower().Replace(" ", "-"); var slug = await context.Pages.Where(x => x.Id != page.Id).FirstOrDefaultAsync(x => x.Slug == page.Slug); if (slug != null) { ModelState.AddModelError("", "The page already exists."); return(View(page)); } context.Update(page); await context.SaveChangesAsync(); TempData["Success"] = "The page has been edited!"; return(RedirectToAction("Edit", new { id = page.Id })); } return(View(page)); }
public async Task <IActionResult> Edit(Page page) { if (ModelState.IsValid) { page.Slug = (page.Id == 1) ? "home" : page.Title.ToLower().Replace(" ", "-"); var slug = await context.Pages .Where(x => x.Id != page.Id) .FirstOrDefaultAsync(x => x.Slug == page.Slug); if (slug != null) { ModelState.AddModelError("", "A Page with this title already exists"); return(View(page)); } context.Update(page); await context.SaveChangesAsync(); TempData["Success"] = $"Page '{page.Title}' has been updated"; return(RedirectToAction("Edit", new { id = page.Id })); } else { string messages = string.Join("; ", ModelState.Values .SelectMany(x => x.Errors) .Select(x => x.ErrorMessage)); ModelState.AddModelError("", messages); } return(View(page)); }
public async Task <IActionResult> Edit(int id, Category category) { if (ModelState.IsValid) { if (!await AddSlug(category)) { return(View(category)); } context.Update(category); await context.SaveChangesAsync(); TempData["Success"] = $"Category '{category.Name}' has been updated."; // NOTE: Implied key names like JS 🤔 return(RedirectToAction("Edit", new { id })); } else { return(View(category)); } }
public async Task <IActionResult> Edit(Category category) { if (ModelState.IsValid) { category.Slug = category.Name.ToLower().Replace(" ", "-"); var slug = await context.Categories.FirstOrDefaultAsync(x => x.Slug == category.Slug); if (slug != null) { ModelState.AddModelError("", "The category already exists"); return(View(category)); } context.Update(category); await context.SaveChangesAsync(); TempData["Success"] = "The category has been edited!"; return(RedirectToAction("Edit", new { id = category.Id })); } return(View(category)); }
public async Task <IActionResult> Edit(int id, Product product) { ViewBag.Categories = new SelectList(context.Categories.OrderBy(x => x.Sorting), "Id", "Name", product.CategoryId); if (ModelState.IsValid) { product.Slug = product.Name.ToLower().Replace(" ", "-"); var slug = await context.Products.Where(x => x.Id != id).FirstOrDefaultAsync(x => x.Slug == product.Slug); if (slug != null) { ModelState.AddModelError("", "The product already exists!"); return(View(product)); } if (product.ImageUpload != null) { string uploadsDir = Path.Combine(webHostEnvironment.WebRootPath, "media/products"); if (!string.Equals(product.Image, "noimage.png") && product.Image != null) { string oldImagePath = Path.Combine(uploadsDir, product.Image); if (System.IO.File.Exists(oldImagePath)) { System.IO.File.Delete(oldImagePath); } } string imageName = Guid.NewGuid().ToString() + "_" + product.ImageUpload.FileName; string filePath = Path.Combine(uploadsDir, imageName); FileStream fs = new FileStream(filePath, FileMode.Create); await product.ImageUpload.CopyToAsync(fs).ConfigureAwait(false); fs.Close(); product.Image = imageName; } context.Update(product); await context.SaveChangesAsync().ConfigureAwait(false); TempData["Success"] = "The product has been edited!"; return(RedirectToAction("Index")); } return(View(product)); }