Ejemplo n.º 1
0
        public async Task <IActionResult> Index(int page = 1)
        {
            var filter = new BaseFilter(page);

            var headerList = await _pageService.GetPaginatedHeaderListAsync(filter);

            var paginateModel = new PaginateViewModel
            {
                ItemCount    = headerList.Count,
                CurrentPage  = page,
                ItemsPerPage = filter.Take.Value
            };

            if (paginateModel.PastMaxPage)
            {
                return(RedirectToRoute(
                           new
                {
                    page = paginateModel.LastPage ?? 1
                }));
            }

            var viewModel = new PagesListViewModel
            {
                PageHeaders   = headerList.Data.ToList(),
                PaginateModel = paginateModel
            };

            return(View(viewModel));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Delete(PagesListViewModel model)
        {
            await _pageService.DeletePageHeaderAsync(model.PageHeader.Id);

            ShowAlertSuccess($"Page \"{model.PageHeader.PageName}\" removed!");
            return(RedirectToAction(nameof(Index), new { page = model.PaginateModel.CurrentPage }));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Index(int page = 1)
        {
            int take = 15;
            int skip = take * (page - 1);

            var pageList = await _pageService.GetPaginatedPageListAsync(skip, take);

            PaginateViewModel paginateModel = new PaginateViewModel()
            {
                ItemCount    = pageList.Count,
                CurrentPage  = page,
                ItemsPerPage = take
            };

            if (paginateModel.MaxPage > 0 && paginateModel.CurrentPage > paginateModel.MaxPage)
            {
                return(RedirectToRoute(
                           new
                {
                    page = paginateModel.LastPage ?? 1
                }));
            }

            PagesListViewModel viewModel = new PagesListViewModel()
            {
                Pages         = pageList.Data.ToList(),
                PaginateModel = paginateModel,
                CanAddPage    = UserHasPermission(Permission.AddPages),
                CanDeletePage = UserHasPermission(Permission.DeletePages)
            };

            return(View(viewModel));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Edit(PagesListViewModel model)
        {
            if (ModelState.IsValid)
            {
                var pageHeader = await _pageService.EditPageHeaderAsync(model.PageHeader);

                ShowAlertSuccess($"Page \"{pageHeader.PageName}\" updated!");
            }
            else
            {
                var errorMessages = new StringBuilder("<ul>");
                foreach (var error in ModelState.Values.SelectMany(_ => _.Errors))
                {
                    errorMessages.Append("<li>").Append(error.ErrorMessage).Append("</li>");
                }
                errorMessages.Append("</ul>");

                ShowAlertDanger("Could add the page to the following error(s):",
                                errorMessages.ToString());
            }

            return(RedirectToAction(nameof(Index), new { page = model.PaginateModel.CurrentPage }));
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> Create(PagesListViewModel model)
        {
            var checkStub = new Regex(@"^[\w\-]*$");

            if (!checkStub.IsMatch(model.PageHeader.Stub))
            {
                ModelState.AddModelError("PageHeader.Stub", "Invalid stub, only letters, numbers, hypens and underscores are allowed");
            }
            if (ModelState.IsValid)
            {
                try
                {
                    var pageHeader = await _pageService.AddPageHeaderAsync(model.PageHeader);

                    ShowAlertSuccess($"Page \"{pageHeader.PageName}\" created!");
                    return(RedirectToAction(nameof(Detail), new { id = pageHeader.Id }));
                }
                catch (GraException gex)
                {
                    AlertInfo = gex.Message;
                }
            }
            else
            {
                var errorMessages = new StringBuilder("<ul>");
                foreach (var error in ModelState.Values.SelectMany(_ => _.Errors))
                {
                    errorMessages.Append("<li>").Append(error.ErrorMessage).Append("</li>");
                }
                errorMessages.Append("</ul>");

                ShowAlertDanger("Could add the page to the following error(s):",
                                errorMessages.ToString());
            }

            return(RedirectToAction(nameof(Index), new { page = model.PaginateModel.CurrentPage }));
        }