public async Task <IActionResult> Delete(int id, RegionSearchViewModel searchViewModel) { try { var validationResult = await new RegionHandler(_regionService).CanDelete(id); if (validationResult == null) { // if no validation error, delete the record await _regionService.DeleteById(id); // set TempData for Success Modal TempData[Constants.Common.ModalMessage] = Constants.Message.RecordSuccessDelete; return(RedirectToAction(nameof(List), searchViewModel)); } ModelState.AddModelError(validationResult); } catch (Exception ex) { var exceptionMessage = await Helpers.GetErrors(ex, _emailService); ModelState.AddModelError(new ValidationResult(exceptionMessage)); } ModelState.AddModelError(string.Empty, "Invalid delete attempt."); // set TempData for Error Modal TempData[Constants.Common.ModalTitle] = Constants.Message.Error; TempData[Constants.Common.ModalMessage] = Helpers.CreateValidationSummary(ModelState); return(RedirectToAction(nameof(List), searchViewModel)); }
public async Task <Extensions.PaginatedList <Region> > FindRegions(RegionSearchViewModel searchViewModel) { var sortDir = Constants.SortDirection.Ascending; if ((!string.IsNullOrEmpty(searchViewModel.SortOrder) && searchViewModel.SortOrder.Equals(Constants.SortDirection.Descending))) { sortDir = Constants.SortDirection.Descending; } var regions = GetDbSet <Region>().AsNoTracking() .Where(x => (string.IsNullOrEmpty(searchViewModel.RegionName) || x.RegionName.Contains(searchViewModel.RegionName, StringComparison.OrdinalIgnoreCase))) .OrderByPropertyName(searchViewModel.SortBy, sortDir); return(await Extensions.PaginatedList <Region> .CreateAsync(regions.AsNoTracking(), searchViewModel.Page, searchViewModel.PageSize)); }
public async Task <IActionResult> List(RegionSearchViewModel searchViewModel) { try { var list = await _regionService.FindRegions(searchViewModel); var tuple = new Tuple <RegionSearchViewModel, PaginatedList <Region> >(searchViewModel, list); return(View(tuple)); } catch (Exception ex) { var exceptionMessage = await Helpers.GetErrors(ex, _emailService); ModelState.AddModelError(new ValidationResult(exceptionMessage)); } return(View()); }
/// <summary> /// Gets region paginated list /// </summary> /// <param name="searchViewModel">holds the search parameter</param> /// <returns>Paginated List</returns> public async Task <Extensions.PaginatedList <Region> > FindRegions(RegionSearchViewModel searchViewModel) { return(await _regionRepository.FindRegions(searchViewModel)); }