public static Web.Models.LoginResponse ToDTO(this BusinessLogic.Models.User model, IMapper mapper, string token)
        {
            var dto = mapper.Map <Web.Models.LoginResponse>(model);

            dto.Token = token;
            return(dto);
        }
        public async Task <ActionResult <LoginResponse> > Login(LoginRequest request)
        {
            BusinessLogic.Models.User user = null;

            try
            {
                user = await UserService.ValidatePassword(request.Username, request.Password);
            } catch (InvalidUsernameException)
            {
                return(NotFound(new ErrorResponse("Invalid username.")));
            }
            catch (InvalidPasswordException)
            {
                return(Unauthorized(new ErrorResponse("Invalid password.")));
            }

            var token = TokenService.GenerateToken(user.Username);

            return(Ok(user.ToDTO(mapper, token)));
        }
 public static Web.Models.User ToDTO(this BusinessLogic.Models.User model, IMapper mapper)
 {
     return(mapper.Map <Web.Models.User>(model));
 }