コード例 #1
0
        public async Task <int?> TrySignUp(IOperation operation, CompanySignUpEntity entity)
        {
            return(await operation.QuerySingleOrDefaultAsync <int?>(entity, @"
                DECLARE @InternalUserId TABLE ([Id] INT);
                DECLARE @UserId TABLE ([Id] INT);

                INSERT INTO [authentication].[InternalUser] (
                    [Email],
                    [Password]
                )
                OUTPUT INSERTED.[Id] INTO @InternalUserId
                VALUES (
                    @Email,
                    @Password
                );

                INSERT INTO [authentication].[User] ([InternalUserId])
                OUTPUT INSERTED.[Id] INTO @UserId
                SELECT [Id]
                FROM @InternalUserId;

                INSERT INTO [company].[Company] (
                    [UserId],
                    [Name]
                )
                SELECT
                    [Id],
                    @Name
                FROM @UserId;

                SELECT [Id] FROM @UserId;
            "));
        }
コード例 #2
0
        public async Task <CompanyAuthenticationProfileEntity?> TrySignUp(IOperation operation, CompanySignUpEntity entity)
        {
            if (await userAuthenticationStore.IsUserExist(operation, entity.Email))
            {
                throw new Exception(ExceptionMessage.EmailHasAlreadyExist);
            }
            var id = await userAuthenticationStore.TrySignUp(operation, entity);

            return(await userAuthenticationStore.GetCompanyProfileById(operation,
                                                                       id ?? throw new Exception(ExceptionMessage.CompanySignUpFailedDueToInactiveUserOrUnsuitableData)));
        }