Ejemplo n.º 1
0
        /// <inheritdoc/>
        public async Task <UserDto> CreateAsync(UserRequest user)
        {
            if (string.IsNullOrWhiteSpace(user.Password))
            {
                throw new AppException("Password is required");
            }

            if (_context.Users.Any(x => x.Login == user.Login))
            {
                throw new AppException("Username \"" + user.Login + "\" is already taken");
            }

            user.Password = SecurePasswordHasher.HasFunction(user.Password);
            var userModel = new UserDto()
            {
                Login = user.Login, Password = user.Password
            };

            _context.Users.Add(userModel);
            await _context.SaveChangesAsync();

            var users = await _context.Users.FirstOrDefaultAsync(x => x.Login == user.Login);

            await _context.UserRoles.AddAsync(new UserRolesDto { UserId = users.Id, RoleIdRole = 1 });

            await _context.SaveChangesAsync();

            return(userModel);
        }
Ejemplo n.º 2
0
        /// <inheritdoc/>
        public async Task <UserDto> ResetPasswordAsync(int id, string newPassword)
        {
            var user = await _context.Users.FirstOrDefaultAsync(x => x.Id == id);

            if (user == null)
            {
                throw new AppException("Не существует пользователя с таким идетификатором");
            }

            user.Password = SecurePasswordHasher.HasFunction(newPassword);
            _context.Users.Update(user);
            await _context.SaveChangesAsync();

            return(user);
        }