所以我的问题是:我的BLL是否验证我的登录,或者我是否将验证放在表单UI上?下面是我的UI中的一段代码。
如果在BLL层中进行了验证,我该怎么做?
private void ValidateForm(string username, string password)
{
var countdb = BLL.UsersBLL.VerifyDataBase();
if (countdb >= 1)
{
var userdata = BLL.UsersBLL.VerifyUserData(username, password);
if (userdata == 1)
{
Entity.UsersEntity.UserSession.username = username;
var mainwindow = Application.Current.MainWindow as MainWindow;
main main = new main();
mainwindow.Close();
main.Show();
main.username.Content = Entity.UsersEntity.UserSession.username;
}
else if (userdata <= 0)
{
ErrorHandle.Content = "Verifique o usuário ou a senha.";
}
}
else
{
MessageBox.Show("O seu banco de dados está vazio! Por favor registrar um usuário.");
register register = new register();
register.ShowDialog();
}
} 发布于 2020-06-27 07:18:59
将与UI无关的逻辑移入专用业务逻辑类型
public class UserLogin
{
public string Name { get; set; }
public string Password { get; set; }
}
public class VerifyUserResult
{
public static VerifyUserResult Success() => new VerifyUserResult();
public static VerifyUserResult Fail(string message) => new VerifyUserResult(message);
public string Message { get; }
public bool Success => string.IsNullOrEmpty(Message);
private VerifyUserResult(string message) => Message = message;
}
public class VerifyUser
{
public VerifyUserResult Invoke(UserLogin user)
{
if (BLL.UsersBLL.VerifyDataBase() < 1)
{
return VerifyUserResult.Fail("Some message");
}
if (BLL.UsersBLL.VerifyUserData(username, password) != 1)
{
return VerifyUserResult.Fail("Another message");
}
return VerifyUserResult.Success();
}
}然后在UI代码中,您只需调用它并根据结果做出下一步决策
https://stackoverflow.com/questions/62603995
复制相似问题