Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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());
        }
Пример #4
0
 /// <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));
 }