public async Task <ActionResult> RenameAccount(RenameEmployerAccountViewModel vm) { var userIdClaim = OwinWrapper.GetClaimValue(ControllerConstants.UserRefClaimKeyName); var response = await _employerAccountOrchestrator.RenameEmployerAccount(vm, userIdClaim); if (response.Status == HttpStatusCode.OK) { var flashmessage = new FlashMessageViewModel { Headline = "Account renamed", Message = "You successfully updated the account name", Severity = FlashMessageSeverityLevel.Success }; AddFlashMessageToCookie(flashmessage); return(RedirectToAction(ControllerConstants.IndexActionName, ControllerConstants.EmployerTeamControllerName)); } var errorResponse = new OrchestratorResponse <RenameEmployerAccountViewModel>(); if (response.Status == HttpStatusCode.BadRequest) { vm.ErrorDictionary = response.FlashMessage.ErrorMessages; } errorResponse.Data = vm; errorResponse.FlashMessage = response.FlashMessage; errorResponse.Status = response.Status; return(View(errorResponse)); }
public async Task ThenTheAccountIsRenamed() { //Arrange var model = new RenameEmployerAccountViewModel { CurrentName = "Test Account", NewName = "New Account Name", HashedId = "ABC123" }; //Act await _employerAccountController.RenameAccount(model); //Assert _orchestrator.Verify(x => x.RenameEmployerAccount(It.Is <RenameEmployerAccountViewModel>(r => r.CurrentName == "Test Account" && r.NewName == "New Account Name" ), It.IsAny <string>())); }
public virtual async Task <OrchestratorResponse <RenameEmployerAccountViewModel> > RenameEmployerAccount(RenameEmployerAccountViewModel model, string userId) { var response = new OrchestratorResponse <RenameEmployerAccountViewModel> { Data = model }; var userRoleResponse = await GetUserAccountRole(model.HashedId, userId); if (!userRoleResponse.UserRole.Equals(Role.Owner)) { return(new OrchestratorResponse <RenameEmployerAccountViewModel> { Status = HttpStatusCode.Unauthorized }); } try { await _mediator.SendAsync(new RenameEmployerAccountCommand { HashedAccountId = model.HashedId, ExternalUserId = userId, NewName = (model.NewName ?? string.Empty).Trim() }); model.CurrentName = model.NewName; model.NewName = string.Empty; response.Data = model; response.Status = HttpStatusCode.OK; } catch (InvalidRequestException ex) { response.Status = HttpStatusCode.BadRequest; response.Data.ErrorDictionary = ex.ErrorMessages; response.Exception = ex; response.FlashMessage = new FlashMessageViewModel { Headline = "Errors to fix", Message = "Check the following details:", ErrorMessages = ex.ErrorMessages, Severity = FlashMessageSeverityLevel.Error }; } return(response); }