Example #1
0
        public async Task <OrchestratorResponse <EmployerTeamMembersViewModel> > ChangeRole(
            string hashedId, string email, short role, string externalUserId)
        {
            try
            {
                await _mediator.SendAsync(new ChangeTeamMemberRoleCommand
                {
                    HashedAccountId = hashedId,
                    Email           = email,
                    RoleId          = role,
                    ExternalUserId  = externalUserId
                });

                var response = await GetTeamMembers(hashedId, externalUserId);

                if (response.Status == HttpStatusCode.OK)
                {
                    response.FlashMessage = new FlashMessageViewModel()
                    {
                        Severity = FlashMessageSeverityLevel.Success,
                        Headline = "Team member updated",
                        HiddenFlashMessageInformation = "page-team-member-role-changed",
                        Message = $"{email} can now {RoleStrings.GetRoleDescriptionToLower(role)}"
                    };
                }

                return(response);
            }
            catch (InvalidRequestException e)
            {
                return(new OrchestratorResponse <EmployerTeamMembersViewModel>
                {
                    Status = HttpStatusCode.BadRequest,
                    Exception = e
                });
            }
            catch (UnauthorizedAccessException e)
            {
                return(new OrchestratorResponse <EmployerTeamMembersViewModel>
                {
                    Status = HttpStatusCode.Unauthorized,
                    Exception = e
                });
            }
        }
Example #2
0
        public async Task ThenIShouldGetBackAnUpdatedTeamMembersListWithTheCorrectSuccessMessage()
        {
            //Assign
            const string email    = "*****@*****.**";
            const Role   role     = Role.Owner;
            var          response = new GetAccountTeamMembersResponse();

            _mediator.Setup(x => x.SendAsync(It.IsAny <ChangeTeamMemberRoleCommand>())).ReturnsAsync(Unit.Value);
            _mediator.Setup(x => x.SendAsync(It.IsAny <GetAccountTeamMembersQuery>())).ReturnsAsync(response);

            //Act
            var result = await _orchestrator.ChangeRole("437675", email, role, "37648");

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(HttpStatusCode.OK, result.Status);
            Assert.IsNotNull(result.FlashMessage);
            Assert.AreEqual("Team member updated", result.FlashMessage.Headline);
            Assert.AreEqual($"{email} can now {RoleStrings.GetRoleDescriptionToLower(role)}", result.FlashMessage.Message);
        }