public async Task <Api.Domain.User> CreateUser(UserForCreation user)
        {
            using (MySqlConnection connection = new MySqlConnection(await _connectionInfo.GetConnectionStringAsync()))
            {
                await connection.OpenAsync().ConfigureAwait(false);

                MySqlCommand command = new MySqlCommand(UserDaoResources.InsertUser, connection);
                command.Parameters.AddWithValue("firstname", user.FirstName);
                command.Parameters.AddWithValue("lastname", user.LastName);
                command.Parameters.AddWithValue("email", user.Email);
                command.Parameters.AddWithValue("global_admin", user.IsAdmin);

                command.Prepare();

                ulong userId = (ulong)await command.ExecuteScalarAsync();

                Api.Domain.User newUser = new Api.Domain.User(
                    (int)userId,
                    user.FirstName,
                    user.LastName,
                    user.Email,
                    user.IsAdmin ? RoleType.Admin : RoleType.Standard);

                connection.Close();

                return(newUser);
            }
        }
Exemple #2
0
        public async Task <IActionResult> Post(UserForCreation user)
        {
            var entity = mapper.Map <User>(user);

            userRepository.AddUser(entity);
            await userRepository.SaveChangesAsync();

            var userReturn = mapper.Map <User, UserDTO>(entity);

            return(CreatedAtRoute("GetAuthor", new { id = userReturn.Id }, userReturn));
        }
        public async Task <IActionResult> AddUser([FromBody] UserForCreation user)
        {
            ValidationResult validationResult = _userForCreationValidator.Validate(user);

            if (!validationResult.IsValid)
            {
                string email = User.FindFirst(_ => _.Type == ClaimTypes.Email)?.Value;
                _log.LogWarning($"User {email} made bad request: {validationResult.GetErrorString()}");
                return(BadRequest(new ErrorResponse(validationResult.GetErrorString())));
            }

            User newUser = await _userDao.CreateUser(user);

            return(CreatedAtRoute(nameof(GetUser), new { id = newUser.Id }, newUser));
        }
        public async Task <IActionResult> Register(UserForCreation userForCreationDto)
        {
            var userToCreate = _mapper.Map <User> (userForCreationDto);

            var result = await _userManager.CreateAsync(userToCreate, userForCreationDto.Password);

            if (result.Succeeded)
            {
                await _userManager.AddToRoleAsync(userToCreate, "Customer");
                await sendConfirmMessage(userToCreate.Id.ToString());

                return(Ok());
            }

            return(BadRequest(result.Errors));
        }
Exemple #5
0
        public async Task CreateUserCorrectlyInsertsUser()
        {
            UserForCreation userForCreation = new UserForCreation
            {
                FirstName = FirstName1,
                LastName  = LastName1,
                Email     = Email1
            };

            Api.Domain.User user = await _userDao.CreateUser(userForCreation);

            List <Api.Domain.User> users = TestHelpers.GetAllUsers(ConnectionString);

            Assert.That(users.Count, Is.EqualTo(1));
            Assert.That(user, Is.EqualTo(users[0]));
        }
Exemple #6
0
        public ActionResult CreateUser([FromBody] UserForCreation dto)
        {
            if (dto.Username == null || dto.Password == null)
            {
                Console.WriteLine("am I here?");
                return(BadRequest(new { message = "Please fill out all fields." }));
            }
            if (_userRepository.GetUserByUsername(dto.Username) != null)
            {
                return(BadRequest(new { message = "Username is already taken. Please choose another username." }));
            }

            var salt = PasswordService.GenerateSalt(_size);
            var pwd  = PasswordService.HashPassword(dto.Password, salt, _size);

            _userRepository.CreateUser(dto.Username, pwd, salt);
            return(CreatedAtRoute(null, new { username = dto.Username }));
        }
        public async Task Test(UserForCreation user, bool isValid)
        {
            ValidationResult validationResult = await _userForCreationValidator.ValidateAsync(user);

            Assert.That(validationResult.IsValid, Is.EqualTo(isValid));
        }