public async Task <JWTAuthResult> Handle(CreateUserCommand request, CancellationToken cancellationToken)
        {
            var user = new UserDO
            {
                Login          = request.Login,
                Name           = request.Name,
                Password       = _hashService.GetPasswordHash(request.Password, out byte[] salt),
                MealPreference = new MealPreferenceDO {
                    Allergens = request.Allergens ?? new List <string>(),
                    Cousines  = new List <string>()
                },
                MoviePreference = new MoviePreferenceDO {
                    Ratings     = request.Movies ?? new Dictionary <string, double>(),
                    MovieGenres = new List <string>()
                },
                AvailableDates = new List <DateTime>(),
                GroupIDs       = new List <string>(),
                Salt           = salt,
            };
            await _userRepository.AddUserAsync(user);

            var authResult = _jWTService.GenerateTokens(user);

            authResult.User = _mapper.Map <UserDO, UserDto>(user);
            authResult.User.MoviePreference.Movies = await GetMovies(authResult.User.MoviePreference.Ratings);

            return(authResult);
        }
예제 #2
0
        public async Task <JWTAuthResult> Handle(LoginCommand request, CancellationToken cancellationToken)
        {
            UserDO user = await GetUserByCredentials(request);

            if (user != null)
            {
                var result = _jWTService.GenerateTokens(user);
                result.User = _mapper.Map <UserDO, UserDto>(user);
                result.User.MoviePreference.Movies = await GetMovies(result.User.MoviePreference.Ratings);

                return(result);
            }
            throw new AuthenticationException();
        }