Пример #1
0
        public async Task <IActionResult> PostEditAsync(Guid id, PageFormViewModel vm)
        {
            if (!ModelState.IsValid)
            {
                return(BackWithError("Error", "An error occurred while processing your request."));
            }

            try
            {
                var page = await _pages.UpdateAsync(
                    new UpdatePageCommand(
                        id,
                        vm.Title,
                        vm.Slug,
                        vm.Published ? State.Published : State.Draft,
                        vm.Type));

                return(RedirectToAction("Page", "Notes", new { bookSlug = page.Book.Slug, pageSlug = page.Slug }));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Error");
                return(BackWithError("Error", "An error occurred while processing your request."));
            }
        }
        public ActionResult EditPage(PageFormViewModel pageModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(pageModel));
            }

            var page = _context.Pages.Find(pageModel.Id);

            string slug = "";

            if (pageModel.Slug != "home")
            {
                if (String.IsNullOrWhiteSpace(pageModel.Slug))
                {
                    slug = pageModel.Title.Replace(" ", "-").ToLower();
                }
                else
                {
                    slug = pageModel.Slug.Replace(" ", "-").ToLower();
                }
            }

            if (_context.Pages.Where(p => p.Id != pageModel.Id).Any(p => p.Title == pageModel.Title) ||
                _context.Pages.Where(p => p.Id != pageModel.Id).Any(p => p.Slug == pageModel.Slug))
            {
                ModelState.AddModelError("", "Title or Slug already exist.");
                return(View(pageModel));
            }

            page.Title      = pageModel.Title;
            page.Slug       = slug;
            page.Body       = pageModel.Body;
            page.HasSidebar = pageModel.HasSidebar;

            _context.SaveChanges();

            TempData["SuccessMessage"] = "You have edited this page!";
            return(RedirectToAction("EditPage"));
        }
        public ActionResult AddPage(PageFormViewModel pageModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(pageModel));
            }

            string slug = "";

            if (String.IsNullOrWhiteSpace(pageModel.Slug))
            {
                slug = pageModel.Title.Replace(" ", "-").ToLower();
            }
            else
            {
                slug = pageModel.Slug.Replace(" ", "-").ToLower();
            }

            if (_context.Pages.Any(p => p.Slug == pageModel.Slug) || _context.Pages.Any(p => p.Title == pageModel.Title))
            {
                ModelState.AddModelError("", "Title or Slug already exists.");
                return(View(pageModel));
            }

            var page = new Page
            {
                Title      = pageModel.Title,
                Slug       = slug,
                Body       = pageModel.Body,
                Sorting    = 100,
                HasSidebar = pageModel.HasSidebar
            };

            _context.Pages.Add(page);
            _context.SaveChanges();

            TempData["SuccessMessage"] = "You have added page!";

            return(RedirectToAction("AddPage"));
        }