private Result LoginUser(LoginInput input) { if (input == null) { throw new ArgumentNullException(nameof(input)); } var result = new Result(); var query = context.Authors.Where(a => a.Username == input.Username); var author = query.SingleOrDefault(); if (author == null) { result.Success = false; result.ValidationMessages.Add("Invalid username or password."); return(result); } if (BCrypt.Net.BCrypt.Verify(input.Password, author.PasswordHash)) { result.Success = true; CurrentAuthor = author; result.ValidationMessages.Add($"Welcome {author.Alias}!"); return(result); } result.Success = false; result.ValidationMessages.Add("Invalid username or password."); return(result); }
public void Display() { var input = new LoginInput() { Username = GetUsername(), Password = GetPassword() }; var result = LoginValidationMethod(input); foreach (var message in result.ValidationMessages) { Console.WriteLine(message); } WaitForKeyPress(); if (result.Success) { LoginSuccessCallback(); } else { LoginFailCallback(); } }