Exemplo n.º 1
0
        public async Task CreateUserAsync(SignupPostData signupPostData, DatabaseContext context)
        {
            (string password, string salt) = this.GeneratePasswordHash(signupPostData.Password);

            UserEntity user = new UserEntity()
            {
                Login    = signupPostData.Username,
                Password = password,
                Salt     = salt
            };
            await context.AddAsync(user);

            await context.SaveChangesAsync();
        }
        public async Task <IActionResult> PostAsync(SignupPostData signupPostData)
        {
            signupPostData = new SignupPostData()
            {
                Password = signupPostData.Password.Trim(),
                Username = signupPostData.Username.Trim()
            };

            using var connection = await this.authService.Connect();

            var  context     = new DatabaseContext(connection);
            bool loginExists = await context.ClipboardUser.AnyAsync(o => o.Login == signupPostData.Username);

            if (loginExists)
            {
                return(this.BadRequest("Username already existent."));
            }

            await this.userSevice.CreateUserAsync(signupPostData, context);

            await connection.CloseAsync();

            return(this.Ok());
        }