using BO.Utils;
|
|
using BWP.WinFormControl;
|
|
using Forks.JsonRpc.Client;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace ButcherManageClient
|
|
{
|
|
public partial class Login : Form
|
|
{
|
|
bool rpcFacadeInited = false;
|
|
|
|
void IniteRpcFacade()
|
|
{
|
|
if (rpcFacadeInited)
|
|
return;
|
|
if (string.IsNullOrEmpty(ButcherAppContext.Context.UrlConfig.ServerUrl))
|
|
throw new Exception("请先设置服务器地址");
|
|
RpcFacade.Init(ButcherAppContext.Context.UrlConfig.ServerUrl, "B3ButcherManageClient");
|
|
rpcFacadeInited = true;
|
|
}
|
|
|
|
public Login()
|
|
{
|
|
InitializeComponent();
|
|
userNameTxt.Text = ButcherAppContext.Context.UserConfig.UserName;
|
|
pwdTxt.Text = "123";
|
|
//#if DEBUG
|
|
// pwdTxt.Text = "123";
|
|
//#endif
|
|
}
|
|
|
|
private void settingBtn_Click(object sender, EventArgs e)
|
|
{
|
|
var f = new SettingForm(rpcFacadeInited);
|
|
f.ShowDialog();
|
|
}
|
|
|
|
private async void loginBtn_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
loginBtn.Enabled = false;
|
|
Application.DoEvents();
|
|
var username = userNameTxt.Text.Trim();
|
|
var pwd = pwdTxt.Text;
|
|
if (string.IsNullOrEmpty(username))
|
|
throw new Exception("请输入用户名");
|
|
IniteRpcFacade();
|
|
ButcherAppContext.Context.UserConfig.PWD = pwd;
|
|
if (LoginRpcUtil.TestConnection(1000))
|
|
{
|
|
await Task.Factory.StartNew(() => RpcFacade.Login(username, pwd));
|
|
LoginRpcUtil.FillUserEmpInfo(username, ButcherAppContext.Context.UserConfig);
|
|
ButcherAppContext.Context.UrlConfig.OutAddress = GetOutAddress();
|
|
ButcherAppContext.Context.Save();
|
|
ButcherAppContext.Context.UserConfig.Connection = true;
|
|
}
|
|
else
|
|
{
|
|
if (ButcherAppContext.Context.UserConfig.Role != "定级员")
|
|
throw new Exception("无法连接到服务器");
|
|
if (username != ButcherAppContext.Context.UserConfig.UserName)
|
|
throw new Exception("离线状态请保持与上次用户名一致");
|
|
ButcherAppContext.Context.UserConfig.Connection = false;
|
|
}
|
|
|
|
//#if DEBUG
|
|
// var form = AfterLoginUtil.CreateForm("分割称重");
|
|
//#endif
|
|
|
|
//#if DEBUG
|
|
var form = AfterLoginUtil.CreateForm();
|
|
//#endif
|
|
|
|
// var form = AfterLoginUtil.CreateForm("分割入库");
|
|
// var form = AfterLoginUtil.CreateForm("分割称重");
|
|
// var form = AfterLoginUtil.CreateForm("定级员");
|
|
if (form == null)
|
|
throw new Exception("权限不符");
|
|
form.FormClosing += delegate { SubFormClosing(); };
|
|
form.Show();
|
|
Hide();
|
|
}
|
|
catch { throw; }
|
|
finally {
|
|
loginBtn.Enabled = true;
|
|
}
|
|
}
|
|
|
|
private string GetOutAddress()
|
|
{
|
|
const string wpfUserMethod = "/MainSystem/B3ClientService/Rpcs/BaseInfoRpc/GetTraceOutAddress";
|
|
return RpcFacade.Call<string>(wpfUserMethod);
|
|
}
|
|
|
|
void SubFormClosing()
|
|
{
|
|
foreach (Form form in Application.OpenForms)
|
|
{
|
|
if (form is Login)
|
|
{
|
|
form.Show();
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void closeBtn_Click(object sender, EventArgs e)
|
|
{
|
|
Application.Exit();
|
|
}
|
|
|
|
private void userNameTxt_Click(object sender, EventArgs e)
|
|
{
|
|
IniteRpcFacade();
|
|
var keyBoard = new NumberPad();
|
|
if (keyBoard.ShowDialog() == true)
|
|
{
|
|
string errorInfo;
|
|
userNameTxt.Text = LoginRpcUtil.GetUserNameByCode(keyBoard.Result, out errorInfo);
|
|
if (string.IsNullOrEmpty(userNameTxt.Text))
|
|
throw new Exception("工号输入错误");
|
|
if (!string.IsNullOrEmpty(errorInfo))
|
|
MessageBox.Show(errorInfo);
|
|
}
|
|
}
|
|
|
|
private void pwdTxt_Click(object sender, EventArgs e)
|
|
{
|
|
var keyBoard = new VirtualKeyPad();
|
|
if (keyBoard.ShowDialog() == true)
|
|
pwdTxt.Text = keyBoard.Result;
|
|
}
|
|
|
|
const string serUri = "http://172.28.1.194:7799/AutoUpdate/ClientVersion.xml";
|
|
const string puKey = "c756e02cedb42a33f78091a466411bde8447d854";
|
|
private void AutoUpdate()
|
|
{
|
|
if (!File.Exists("AutoUpdate.exe"))
|
|
return;
|
|
var versionInfo = new ClientVersion();
|
|
if (File.Exists("ClientVersion.xml"))
|
|
versionInfo = XmlUtil.DeserializeFromFile<ClientVersion>();
|
|
if (string.IsNullOrEmpty(versionInfo.ServerUrl))
|
|
versionInfo.ServerUrl = serUri;
|
|
|
|
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(versionInfo.ServerUrl);
|
|
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
|
|
if (resp.StatusCode != HttpStatusCode.OK)
|
|
return;
|
|
|
|
var down = new System.Net.WebClient();
|
|
var serverVersion = XmlUtil.XmlDeserializeObject<ClientVersion>(down.DownloadString(versionInfo.ServerUrl));
|
|
if (versionInfo.Version == serverVersion.Version)
|
|
return;
|
|
|
|
System.Diagnostics.Process.Start(Path.Combine(Application.StartupPath, "AutoUpdate.exe"), puKey);
|
|
Application.Exit();
|
|
}
|
|
|
|
private void Login_Load(object sender, EventArgs e)
|
|
{
|
|
#if !DEBUG
|
|
//AutoUpdate();
|
|
#endif
|
|
}
|
|
}
|
|
}
|