屠宰场客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

128 lines
3.6 KiB

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.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";
}
private void settingBtn_Click(object sender, EventArgs e)
{
var f = new SettingForm(rpcFacadeInited);
f.ShowDialog();
}
private async void loginBtn_Click(object sender, EventArgs e)
{
var username = userNameTxt.Text.Trim();
var pwd = pwdTxt.Text;
if (string.IsNullOrEmpty(username))
throw new Exception("请输入用户名");
IniteRpcFacade();
await Task.Factory.StartNew(() => RpcFacade.Login(username, pwd));
LoginRpcUtil.FillUserEmpInfo(username, ButcherAppContext.Context.UserConfig);
ButcherAppContext.Context.Save();
var form = AfterLoginUtil.CreateForm(ButcherAppContext.Context.UserConfig.Role);
if (form == null)
throw new Exception("权限不符");
form.FormClosing += delegate { SubFormClosing(); };
form.Show();
Hide();
}
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;
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)
{
//AutoUpdate();
}
}
}