public async Task <ActionResult> Invite(InviteTeamMemberViewModel model) { var response = await _employerTeamOrchestrator.InviteTeamMember(model, OwinWrapper.GetClaimValue(@"sub")); if (response.Status == HttpStatusCode.OK) { var flashMessage = new FlashMessageViewModel { HiddenFlashMessageInformation = "page-invite-team-member-sent", Severity = FlashMessageSeverityLevel.Success, Headline = "Invitation sent", Message = $"You've sent an invitation to <strong>{model.Email}</strong>" }; AddFlashMessageToCookie(flashMessage); return(RedirectToAction("ViewTeam")); } model.ErrorDictionary = response.FlashMessage.ErrorMessages; var errorResponse = new OrchestratorResponse <InviteTeamMemberViewModel> { Data = model, FlashMessage = response.FlashMessage, }; return(View(errorResponse)); }
public async Task <ActionResult> Create(InviteTeamMemberViewModel model) { if (string.IsNullOrEmpty(OwinWrapper.GetClaimValue("sub"))) { return(RedirectToAction("Index", "Home")); } await _invitationOrchestrator.CreateInvitation(model, OwinWrapper.GetClaimValue("sub")); return(RedirectToAction("Index", "Home")); }
public async Task <ActionResult> Create(InviteTeamMemberViewModel model) { if (string.IsNullOrEmpty(OwinWrapper.GetClaimValue(ControllerConstants.UserRefClaimKeyName))) { return(RedirectToAction(ControllerConstants.IndexActionName, ControllerConstants.HomeControllerName)); } await _invitationOrchestrator.CreateInvitation(model, OwinWrapper.GetClaimValue(ControllerConstants.UserRefClaimKeyName)); return(RedirectToAction(ControllerConstants.IndexActionName, ControllerConstants.HomeControllerName)); }
public async Task CreateInvitation(InviteTeamMemberViewModel model, string externalUserId) { try { await _mediator.SendAsync(new CreateInvitationCommand { HashedAccountId = model.HashedAccountId, ExternalUserId = externalUserId, Name = model.Name, Email = model.Email, RoleId = model.Role }); } catch (InvalidRequestException ex) { _logger.Info(ex); } }
public async Task ThenIShouldGetBackAnUpdatedTeamMembersListWithTheCorrectSuccessMessage() { //Arrange var request = new InviteTeamMemberViewModel() { Email = "*****@*****.**" }; var response = new GetAccountTeamMembersResponse(); _mediator.Setup(x => x.SendAsync(It.IsAny <CreateInvitationCommand>())).ReturnsAsync(Unit.Value); _mediator.Setup(x => x.SendAsync(It.IsAny <GetAccountTeamMembersQuery>())).ReturnsAsync(response); //Act var result = await _orchestrator.InviteTeamMember(request, "37648"); //Assert Assert.IsNotNull(result); Assert.AreEqual(HttpStatusCode.OK, result.Status); }
public async Task <OrchestratorResponse <EmployerTeamMembersViewModel> > InviteTeamMember( InviteTeamMemberViewModel model, string externalUserId) { try { await _mediator.SendAsync(new CreateInvitationCommand { ExternalUserId = externalUserId, HashedAccountId = model.HashedAccountId, Name = model.Name, Email = model.Email, RoleId = model.Role }); } catch (InvalidRequestException e) { return(new OrchestratorResponse <EmployerTeamMembersViewModel> { Status = HttpStatusCode.BadRequest, FlashMessage = new FlashMessageViewModel { Headline = "Errors to fix", Message = "Check the following details:", ErrorMessages = e.ErrorMessages, Severity = FlashMessageSeverityLevel.Error }, Exception = e }); } catch (UnauthorizedAccessException ex) { return(new OrchestratorResponse <EmployerTeamMembersViewModel> { Status = HttpStatusCode.Unauthorized, Exception = ex }); } return(new OrchestratorResponse <EmployerTeamMembersViewModel>()); }
public async Task ThenIShouldGetBackAnUnauthorisedRequestIfOneIsRaiseForInvitingTeamMembers() { //Arrange var request = new InviteTeamMemberViewModel { Email = "*****@*****.**" }; _mediator.Setup(x => x.SendAsync(It.IsAny <CreateInvitationCommand>())) .ThrowsAsync(new UnauthorizedAccessException()); _mediator.Setup(x => x.SendAsync(It.IsAny <GetAccountTeamMembersQuery>())); //Act var result = await _orchestrator.InviteTeamMember(request, "37648"); //Assert Assert.IsNotNull(result); Assert.AreEqual(HttpStatusCode.Unauthorized, result.Status); _mediator.Verify(x => x.SendAsync(It.IsAny <GetAccountTeamMembersQuery>()), Times.Never); }