using AutoUpdaterDotNET;
using DeviceRepair.Models;
using DeviceRepairAndOptimization;
using DeviceRepairAndOptimization.Common;
using Newtonsoft.Json;
using System;
using System.Drawing;
using System.IO;
using System.Threading;
using System.Windows.Forms;
namespace DeviceRepairAndOptimization
{
static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main(string[] args)
{
bool isAppRunning;
using (Mutex mutex = new Mutex(true, "设备管理软件", out isAppRunning))
{
if (!isAppRunning)
{
// 如果应用程序已在运行,则显示一个消息框并退出。
XtraMessageBoxHelper.Error("应用程序已运行。");
return;
}
Application.ThreadException += Application_ThreadException;
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// 测试其他的窗口
//Form f = new Form() { Size = new Size(480, 850), StartPosition = FormStartPosition.CenterScreen };
//f.Controls.Add(new Pages.Tag.xueTagForm() { Dock = DockStyle.Fill });
//Application.Run(new Pages.Plan.pageMaintenanceRecord());
//return;
#region 开个等待窗口,做初始化 主要功能为检测程序配置config中的数据库连接字符串 & 测试连接数据库
if (args != null && args.Length > 0)
{
//UserInfoModel us1 = JsonConvert.DeserializeObject("{\"AutoID\": 1,\"LoginCode\": \"myl\",\"PassWord\": \"Kanghui2\",\"RealName\": \"管理员\",\"Gender\": 1,\"Birthday\": \"/Date(1693471604770)/\",\"Phone\": \"13800000000\",\"RuleGroup\": 0}");
//string aa = JWT.JsonWebToken.Encode(us1, GlobalInfo.SecureKey, JWT.JwtHashAlgorithm.HS256);
AutoUpdater.AppTitle = "Device Repair And Optimization";
var vUpdateDir = Path.Combine(Application.StartupPath, "Update");
if (!Directory.Exists(vUpdateDir))
{
Directory.CreateDirectory(vUpdateDir);
}
// 指定下载文件的存储目录
AutoUpdater.DownloadPath = vUpdateDir;
AutoUpdater.UpdateFormSize = new Size(800, 600);
AutoUpdater.Synchronous = true;
AutoUpdater.ShowSkipButton = false;
AutoUpdater.ShowRemindLaterButton = false;
AutoUpdater.Start($"http://{DeviceRepair.Utils.Config.Configurations.Properties.ServiceIP}/{DeviceRepair.Utils.Config.Configurations.Properties.ServiceName}/Update/DOAutoUpdater.xml");
try
{
string argsValue = string.Join("|", args);
string usValue = JWT.JsonWebToken.Decode(argsValue, DeviceRepair.Utils.Config.Configurations.Properties.SecureKey, true);
UserInfoModel us = JsonConvert.DeserializeObject(usValue);
if (us != null)
{
GlobalInfo.token = argsValue;
GlobalInfo.CurrentUser = us;
Application.Run(new frm_Launch());
return;
}
}
catch (Exception ex)
{
XtraMessageBoxHelper.Error(ex.Message);
return;
}
}
#endregion
frmLogin login = new frmLogin();
if (login.ShowDialog() == DialogResult.OK)
{
Application.Run(new frm_Launch());
}
}
}
private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
//1记录日志信息
Exception ex = e.Exception;
//2 弹出提示
XtraMessageBoxHelper.Error(ex.Message);
}
}
}