public IActionResult Post([FromBody] Phase phase) { if (!_accessService.AllowPostPhase(User, phase.EngagementId)) { return(StatusCode(403)); } var validationResult = _phaseValidator.Validate(phase); if (!validationResult.IsValid) { ModelState.AddValidationResult(validationResult); return(BadRequest(ModelState)); } if (phase.Id > 0) { _phaseService.Update(phase); } else { _phaseService.Add(phase); } return(Ok(phase)); }
protected IActionResult ProcessViewModel <TViewModel>( IValidator <TViewModel> validator, IProcessor <TViewModel> processor, TViewModel viewModel, Func <TViewModel, IActionResult> successAction, Func <TViewModel, IActionResult> failureAction) where TViewModel : class, IBaseViewModel { try { var validationResult = validator.Validate(viewModel); ModelState.AddValidationResult(validationResult); if (!ModelState.IsValid) { return(failureAction(viewModel)); } processor.Process(viewModel); return(successAction(viewModel)); } catch (Exception e) { return(failureAction(viewModel)); } }
protected async Task <IActionResult> ProcessViewModel <TViewModel>( TViewModel viewModel, Func <TViewModel, Task> customFunc, Func <IActionResult> successAction, Func <IActionResult> failureAction) where TViewModel : class, IBaseViewModel { try { var validator = GetValidator <TViewModel>(); var validationResult = validator.Validate(viewModel); ModelState.AddValidationResult(validationResult); if (!ModelState.IsValid) { return(failureAction()); } await customFunc(viewModel); return(successAction()); } catch (Exception) { return(failureAction()); } }
public IActionResult SignIn(SignInViewModel viewModel) { var result = ProcessViewModel( viewModel, async vm => { var validationResult = new ValidationResult <SignInViewModel>(); try { var principal = authentication.SignIn(vm.Username, vm.Password); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal); } catch (DeactivatedException) { validationResult.AddError( x => x.Username, translationManager.GetTranslationLabel(LanguageId, "Dashboard:SignIn:Deactivated")); ModelState.AddValidationResult(validationResult); throw; } catch (Exception) { validationResult.AddError( x => x.Username, translationManager.GetTranslationLabel(LanguageId, "Dashboard:SignIn:WrongLogin")); validationResult.AddError( x => x.Password, translationManager.GetTranslationLabel(LanguageId, "Dashboard:SignIn:WrongLogin")); ModelState.AddValidationResult(validationResult); throw; } }, () => RedirectToAction("Index", "Dashboard"), () => { var reloader = GetReloader <SignInViewModel>(); return(View("SignIn", reloader.Reload(viewModel))); }); return(result.Result); }
public IActionResult Delete(int id) { var role = roleProvider.GetEntity(x => x.Id == id); if (role.IsNullOrDefault()) { return(RedirectToAction("List", "Role")); } try { var rolePermissions = rolePermissionProvider.Where(x => x.Role_Id == role.Id); var userRoles = userRoleProvider.Where(x => x.Role_Id == role.Id); using (var transaction = new TransactionScope(TransactionScopeOption.Required)) { rolePermissionService.DeleteRange(rolePermissions); userRoleService.DeleteRange(userRoles); roleService.Delete(role); transaction.Complete(); } return(RedirectToAction("List", "Role")); } catch (Exception) { var validationResult = new ValidationResult <UserViewModel>(); var loader = GetLoader <RoleViewModel, int>(); var viewModel = loader.Load(role.Id); validationResult.AddError( m => m.Id, translationManager.GetTranslationLabel(LanguageId, "Dashboard:Role:NotDeleted")); ModelState.Clear(); ModelState.AddValidationResult(validationResult); return(View("Details", viewModel)); } }