public async Task <ActionResult> RemoveOrganisation(string hashedAccountId, string agreementId, ConfirmLegalAgreementToRemoveViewModel model) { var response = await _orchestrator.RemoveLegalAgreement(model, OwinWrapper.GetClaimValue(ControllerConstants.UserRefClaimKeyName)); if (response.Status == HttpStatusCode.OK) { AddFlashMessageToCookie(response.FlashMessage); return(RedirectToAction(ControllerConstants.IndexActionName, new { hashedAccountId })); } if (response.Status == HttpStatusCode.BadRequest) { AddFlashMessageToCookie(response.FlashMessage); return(RedirectToAction(ControllerConstants.ConfirmRemoveOrganisationActionName, new { hashedAccountId, agreementId })); } return(RedirectToAction(ControllerConstants.IndexActionName, new { hashedAccountId })); }
public virtual async Task <OrchestratorResponse <bool> > RemoveLegalAgreement(ConfirmLegalAgreementToRemoveViewModel model, string userId) { var response = new OrchestratorResponse <bool>(); try { if (model.RemoveOrganisation == null) { response.Status = HttpStatusCode.BadRequest; response.FlashMessage = FlashMessageViewModel.CreateErrorFlashMessageViewModel(new Dictionary <string, string> { { "RemoveOrganisation", "Confirm you wish to remove the organisation" } }); return(response); } if (model.RemoveOrganisation == 1) { response.Status = HttpStatusCode.Continue; return(response); } await _mediator.SendAsync(new RemoveLegalEntityCommand { HashedAccountId = model.HashedAccountId, UserId = userId, HashedLegalAgreementId = model.HashedAgreementId }); response.FlashMessage = new FlashMessageViewModel { Headline = $"You have removed {model.Name}.", Severity = FlashMessageSeverityLevel.Success }; response.Data = true; } catch (InvalidRequestException ex) { response.Status = HttpStatusCode.BadRequest; response.FlashMessage = FlashMessageViewModel.CreateErrorFlashMessageViewModel(ex.ErrorMessages); response.Exception = ex; } catch (UnauthorizedAccessException ex) { response.Status = HttpStatusCode.Unauthorized; response.Exception = ex; } return(response); }