using NLog;
using FATrace.Model;
namespace FATrace.App
{
internal static class Program
{
//日志的实例化
private static Logger logger = LogManager.GetCurrentClassLogger();
public static bool IsActive { get; private set; }
public static DateTime StartTime = DateTime.Now;
public static string SystemName = "";
///
/// The main entry point for the application.
///
[STAThread]
static void Main()
{
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
bool isAppRunning = false;
Mutex mutex = new Mutex(true, System.Diagnostics.Process.GetCurrentProcess().ProcessName, out isAppRunning);
if (!isAppRunning)
{
MessageBox.Show("程序已运行,不能再次打开!");
Environment.Exit(1);
}
// 授权
if (!HslCommunication.Authorization.SetAuthorizationCode("c04165f1-2578-4d86-ab08-a293b7552a5f"))
{
//active failed
MessageBox.Show("授权失败!当前程序只能使用8小时!");
// return;
}
else
{
IsActive = true;
}
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
// 结构同步:App 端当前 UseAutoSyncStructure(false),需要显式同步新增列
try
{
FSqlContext.FDb.CodeFirst.SyncStructure();
FSqlContext.FDb.CodeFirst.SyncStructure();
}
catch (Exception ex)
{
logger.Error(ex, "数据库结构同步失败");
MessageBox.Show($"数据库结构同步失败:{ex.Message}");
}
Application.Run(new frmMain());
}
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Exception ex = e.ExceptionObject as Exception;
logger.Error(String.Format("ErrSource : {0} ErrMsg : {1}", ex.StackTrace.ToString(), ex.Message.ToString()));
}
}
}