예제 #1
0
        public EmptyResult UpdateUserInvitation(UpdateUserInvitationCommand command)
        {
            if (string.IsNullOrWhiteSpace(command.InvitationGuid))
            {
                return(new EmptyResult(UserInvitationServiceErrors.InvalidUserInviteGuidError()));
            }
            if (string.IsNullOrWhiteSpace(command.ExternalUserId))
            {
                return(new EmptyResult(UserInvitationServiceErrors.InvalidExternalUserIdError()));
            }

            if (command.AcceptedAt.HasValue && command.DeclinedAt.HasValue)
            {
                return(new EmptyResult(UserInvitationServiceErrors.CannotAcceptAndDeclineInvitationError()));
            }

            if (!userInvitationRepository.UserInvitationExists(command.InvitationGuid, command.ExternalUserId))
            {
                return(new EmptyResult(UserInvitationServiceErrors.UserInvitationNotFoundError()));
            }

            userInvitationRepository.UpdateUserInvitation(command);

            return(new EmptyResult());
        }
예제 #2
0
        public EmptyResult DeleteUserInvitation(string invitationGuid, string externalUserId)
        {
            if (string.IsNullOrWhiteSpace(invitationGuid))
            {
                return(new EmptyResult(UserInvitationServiceErrors.InvalidUserInviteGuidError()));
            }
            if (string.IsNullOrWhiteSpace(externalUserId))
            {
                return(new Result <string>(UserInvitationServiceErrors.InvalidExternalUserIdError()));
            }
            if (!userInvitationRepository.UserInvitationExists(invitationGuid, externalUserId))
            {
                return(new EmptyResult(UserInvitationServiceErrors.UserInvitationNotFoundError()));
            }

            userInvitationRepository.DeleteUserInvitation(invitationGuid, externalUserId);

            return(new EmptyResult());
        }
예제 #3
0
        public Result <string> CreateUserInvitation(CreateUserInvitationCommand command)
        {
            if (command.OrganizationId <= 0)
            {
                return(new Result <string>(UserInvitationServiceErrors.InvalidOrganizationIdError()));
            }

            var existsOrganizationById = organizationService.ExistsOrganizationById(command.OrganizationId);

            if (existsOrganizationById.IsFailure || !existsOrganizationById.Value)
            {
                return(new Result <string>(UserInvitationServiceErrors.OrganizationNotFoundError()));
            }

            if (string.IsNullOrWhiteSpace(command.ExternalUserId))
            {
                return(new Result <string>(UserInvitationServiceErrors.InvalidExternalUserIdError()));
            }

            if (command.OrganizationUserId <= 0)
            {
                return(new Result <string>(UserInvitationServiceErrors.InvalidOrganizationUserIdError()));
            }

            var existOrganizationUser = organizationUserService.ExistOrganizationUser(command.OrganizationUserId, command.OrganizationId);

            if (existOrganizationUser.IsFailure || !existOrganizationUser.Value)
            {
                return(new Result <string>(UserInvitationServiceErrors.OrganizationUserNotFoundError()));
            }

            var inviteGuid = Guid.NewGuid().ToString();
            var inviteId   = userInvitationRepository.CreateUserInvitation(command, inviteGuid);

            logger.LogInformation($"User Invitation Created: ID {inviteId} CODE {inviteGuid}");

            return(new Result <string>(inviteGuid));
        }
예제 #4
0
        public Result <GetUserInvitationResult> GetUserInvitation(string invitationGuid, string externalUserId)
        {
            if (string.IsNullOrWhiteSpace(invitationGuid))
            {
                return(new Result <GetUserInvitationResult>(UserInvitationServiceErrors.InvalidUserInviteGuidError()));
            }
            if (string.IsNullOrWhiteSpace(externalUserId))
            {
                return(new Result <GetUserInvitationResult>(UserInvitationServiceErrors.InvalidExternalUserIdError()));
            }

            var invitation = userInvitationRepository.GetUserInvitation(invitationGuid, externalUserId);

            if (invitation is null)
            {
                return(new Result <GetUserInvitationResult>(UserInvitationServiceErrors.UserInvitationNotFoundError()));
            }

            var organization = organizationService.GetOrganization(invitation.OrganizationId).Value;

            invitation.OrganizationName = organization.Name;

            return(new Result <GetUserInvitationResult>(invitation));
        }