首次提交:添加src文件夹代码
This commit is contained in:
126
Cowain.Bake.UI/Home/ViewModels/LoginViewModel.cs
Normal file
126
Cowain.Bake.UI/Home/ViewModels/LoginViewModel.cs
Normal file
@@ -0,0 +1,126 @@
|
||||
//using Cowain.Bake.Common.Service;
|
||||
using Cowain.Bake.BLL;
|
||||
using Cowain.Bake.Common;
|
||||
using Cowain.Bake.Common.Enums;
|
||||
using Cowain.Bake.Common.Interface;
|
||||
using Prism.Commands;
|
||||
using Prism.Ioc;
|
||||
using Prism.Mvvm;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Input;
|
||||
using Unity;
|
||||
|
||||
namespace Cowain.Bake.UI.Home.ViewModels
|
||||
{
|
||||
public class LoginViewModel : BindableBase
|
||||
{
|
||||
private readonly IUnityContainer _unityContainer;
|
||||
//private readonly IRegionManager _regionManager;
|
||||
|
||||
public LoginViewModel(IUnityContainer unityContainer/*, IRegionManager regionManager*/)
|
||||
{
|
||||
//初始化数据库连接池
|
||||
_unityContainer = unityContainer;
|
||||
//_regionManager = regionManager;
|
||||
//ConfigInfo.InitConfigParm(_unityContainer);
|
||||
Global.STOVE_LAYERS = _unityContainer.Resolve<MemoryDataProvider>().AllStation.Find(x => x.Type == (int)EStationType.Stove).Layers;
|
||||
}
|
||||
|
||||
private string _userName = "TEST12132";
|
||||
|
||||
public string UserName
|
||||
{
|
||||
get { return _userName; }
|
||||
set { SetProperty<string>(ref _userName, value); }
|
||||
}
|
||||
|
||||
|
||||
private string _password = "123456";
|
||||
|
||||
public string Password
|
||||
{
|
||||
get { return _password; }
|
||||
set { SetProperty<string>(ref _password, value); }
|
||||
}
|
||||
|
||||
private string _errorMsg;
|
||||
|
||||
public string ErrorMsg
|
||||
{
|
||||
get { return _errorMsg; }
|
||||
set { SetProperty<string>(ref _errorMsg, value); }
|
||||
}
|
||||
|
||||
|
||||
// 登录命令
|
||||
public ICommand LoginCommand
|
||||
{
|
||||
get => new DelegateCommand<object>(OnLogin);
|
||||
}
|
||||
public static bool loginFlag = false;
|
||||
private async void OnLogin(object obj)
|
||||
{
|
||||
string msg = "";
|
||||
try
|
||||
{
|
||||
this.ErrorMsg = "" ;
|
||||
if (string.IsNullOrEmpty(this.UserName))
|
||||
{
|
||||
this.ErrorMsg = "请输入用户名!";
|
||||
return;
|
||||
}
|
||||
if (string.IsNullOrEmpty(this.Password))
|
||||
{
|
||||
this.ErrorMsg = "请输入密码!";
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var loginTask = Task.Run(() => _unityContainer.Resolve<UserService>().Login(this.UserName, this.Password, out msg));
|
||||
var timeouttask = Task.Delay(8000);
|
||||
var completedTask = await Task.WhenAny(loginTask, timeouttask);
|
||||
if (completedTask == timeouttask)
|
||||
{
|
||||
this.ErrorMsg = "连接数据库超时,请联系管理员!";
|
||||
}
|
||||
else
|
||||
{
|
||||
var task = await loginTask;
|
||||
if (task == true && !loginFlag)
|
||||
{
|
||||
loginFlag = true;
|
||||
this.ErrorMsg = "登录成功 . . .";
|
||||
(obj as Window).DialogResult = true;
|
||||
}
|
||||
else if (task == true && loginFlag)//切换用户
|
||||
{
|
||||
_unityContainer.Resolve<ICommonFun>().InitWindows();
|
||||
(obj as Window).DialogResult = true;
|
||||
(obj as Window).Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!string.IsNullOrEmpty(msg))
|
||||
{
|
||||
this.ErrorMsg = msg;
|
||||
}
|
||||
else if (!loginFlag)
|
||||
{
|
||||
this.ErrorMsg = "登录失败,用户名或密码错误. . .";
|
||||
}
|
||||
else
|
||||
{
|
||||
this.ErrorMsg = "切换用户失败,用户名或密码错误. . .";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
this.ErrorMsg = "登录失败!" + ex.Message;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user