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);
        }