public async Task <UserLoginResponse> LoginUser(UserLoginRequest user)
        {
            UserLoginResponse userFromDatabase = null;

            user.Errors = _validations.ValidateUserLogin(user);

            if (user.Errors.Count != 0)
            {
                return(new UserLoginResponse()
                {
                    Success = false,
                    Errors = user.Errors
                });
            }
            if (!await _userRepository.UserExists(user.Login))
            {
                user.Errors.Add("User does not exist!");
                return(new UserLoginResponse()
                {
                    Success = false,
                    Errors = user.Errors
                });
            }

            userFromDatabase = await _userRepository.LoginUser(new User()
            {
                Login    = user.Login,
                Password = GetPasswordHashSalt(Encoding.UTF8.GetBytes(user.Password)),
            });

            if (userFromDatabase == null)
            {
                user.Errors.Add("Username and password does not match!");
                return(new UserLoginResponse()
                {
                    Success = false,
                    Errors = user.Errors
                });
            }
            // var userRole = GetUserByLogin(user.Login).Result.Role;
            userFromDatabase.Token = GetAccessToken(await GetUserByLogin(user.Login));
            return(userFromDatabase);
        }