Esempio n. 1
0
        public async Task UserDoesNotExist_ThrowsException(UserStatus userStatus)
        {
            var organisationUserId = Guid.NewGuid();

            A.CallTo(() => dataAccess.GetOrganisationUser(organisationUserId))
            .Returns((OrganisationUser)null);

            await Assert.ThrowsAnyAsync <Exception>(
                () =>
                UpdateOrganisationUserStatusHandler()
                .HandleAsync(new UpdateOrganisationUserStatus(organisationUserId, userStatus)));
        }
        public async Task <int> HandleAsync(UpdateOrganisationUserStatus query)
        {
            var organisationUser = await dataAccess.GetOrganisationUser(query.OrganisationUserId);

            if (organisationUser == null)
            {
                throw new Exception(string.Format("No organisation user was found with ID \"{0}\".", query.OrganisationUserId));
            }

            authorization.EnsureInternalOrOrganisationAccess(organisationUser.OrganisationId);

            if (userContext != null && userContext.UserId.ToString() == organisationUser.UserId)
            {
                throw new InvalidOperationException(string.Format("Error for user with Id '{0}': Users cannot change their own status", userContext.UserId));
            }

            return(await dataAccess.ChangeOrganisationUserStatus(organisationUser, query.UserStatus));
        }