// Delete Department public static DepartmentDelete.Response Handle(IRepository repository, DepartmentDelete.Request request) { var validationDetails = Validator.ValidateRequest(request, repository); if (validationDetails.HasValidationIssues) { return(new DepartmentDelete.Response(validationDetails)); } var department = repository.GetEntity <Department>( p => p.DepartmentID == request.CommandModel.DepartmentID, new EagerLoadingQueryStrategy <Department>( p => p.Administrator)); var hasConcurrencyError = false; var container = department.Delete(); validationDetails = repository.Save(container, dbUpdateConcurrencyExceptionFunc: dbUpdateEx => { hasConcurrencyError = true; return(new ValidationMessageCollection(new ValidationMessage(string.Empty, dbUpdateEx.ToString()))); }); return(new DepartmentDelete.Response(validationDetails, hasConcurrencyError)); }
public async Task<ActionResult> Delete(DepartmentDelete.CommandModel commandModel) { var request = new DepartmentDelete.Request(SystemPrincipal.Name, commandModel); var response = await DomainServices.DispatchAsync<DepartmentDelete.Response>(request); if (!response.HasValidationIssues) return RedirectToAction("Index"); if (response.HasConcurrencyError.Value) RedirectToAction("Delete", new { concurrencyError = true, id = commandModel.DepartmentID }); ModelState.AddModelError(string.Empty, "Unable to delete. Try again, and if the problem persists contact your system administrator."); return View(commandModel); }
public async Task <ActionResult> Delete(DepartmentDelete.CommandModel commandModel) { var request = new DepartmentDelete.Request(SystemPrincipal.Name, commandModel); var response = await DomainServices.DispatchAsync <DepartmentDelete.Response>(request); if (!response.HasValidationIssues) { return(RedirectToAction("Index")); } if (response.HasConcurrencyError.Value) { RedirectToAction("Delete", new { concurrencyError = true, id = commandModel.DepartmentID }); } ModelState.AddModelError(string.Empty, "Unable to delete. Try again, and if the problem persists contact your system administrator."); return(View(commandModel)); }