/// <inheritdoc />
        public int CreateUserInvitation(CreateUserInvitationCommand command, string inviteGuid)
        {
            var entity = mapper.Map <UserInvitationEntity>(command);

            entity.CreatedAt      = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
            entity.InvitationGuid = inviteGuid;

            context.UserInvitations.Add(entity);
            context.SaveChanges();
            return(entity.UserInvitationEntityId);
        }
Beispiel #2
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));
        }