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)); }
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 })); }
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)); }
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 })); }
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 })); }