コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
            }
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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));
        }