using DevExpress.LookAndFeel;
using Mapster;
using System.Reflection;
using Yw;
using Yw.WinFrmUI;
namespace HStation.Desktop
{
internal static class Program
{
///
/// The main entry point for the application.
///
[STAThread]
private static void Main()
{
using (var mutex = new System.Threading.Mutex(true, Application.ProductName, out bool createNew))
{
if (!createNew)
{
MessageBox.Show("³ÌÐòÕýÔÚÔËÐÐÖÐ...");
Application.Exit();
return;
}
//DevExpress.UserSkins.BonusSkins.Register();
DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle("Bezier");//Visual Studio 2013 Light
DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle(SkinSvgPalette.Bezier.OfficeColorful);
DevExpress.Skins.SkinManager.EnableFormSkins();
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-Hans");
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("zh-Hans");
//´¦Àíδ²¶»ñµÄÒì³£
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
//´¦ÀíUIÏß³ÌÒì³£
Application.ThreadException += Application_ThreadException;
//´¦Àí·ÇUIÏß³ÌÒì³£
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
//´¦Àíδ±»¹Û²ìµ½µÄÒì³£
TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//×ÖÌå
var font = new System.Drawing.Font("΢ÈíÑźÚ", 10);
DevExpress.XtraEditors.WindowsFormsSettings.DefaultFont = font;
DevExpress.XtraEditors.WindowsFormsSettings.DefaultMenuFont = font;
DevExpress.Utils.AppearanceObject.DefaultFont = font;
//zh-Hans½çÃæ·Òë
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-Hans");
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("zh-Hans");
//Ƥ·ô
DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle(SkinStyle.WXICompact);
//DevExpress.LookAndFeel.UserLookAndFeel.Default.SetSkinStyle(SkinStyle.WXICompact);
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
Yw.WinFrmUI.GlobalParas.AppIcon = HStation.Desktop.Xhs.Core.Properties.Resources.app;
#region ÑéÖ¤Éý¼¶
try
{
if (AutoUpdateHelper.NeedExist())
return;
}
catch (Exception ex)
{
LogHelper.Error("ÑéÖ¤Éý¼¶´íÎó", ex);
}
#endregion
if (!LoginHelper.Login())
{
return;
}
Yw.Untity.UserRegister.Regist
(
Yw.WinFrmUI.LoginUserInfo.CorpID,
Yw.WinFrmUI.LoginUserInfo.UserID,
(int)Yw.WinFrmUI.LoginUserInfo.AdminType,
Yw.WinFrmUI.LoginUserInfo.UserName,
Yw.WinFrmUI.LoginUserInfo.UserTag,
Yw.WinFrmUI.LoginUserInfo.LoginAccountID,
Yw.WinFrmUI.LoginUserInfo.LoginTypeID,
Yw.WinFrmUI.LoginUserInfo.ProjectID,
Yw.WinFrmUI.LoginUserInfo.SoftwareID
);
//ɨÃèÈ«¾ÖDTOÓ³Éä
TypeAdapterConfig.GlobalSettings.Scan
(
Assembly.Load("Yw.BLL.Auth.Core"),
Assembly.Load("Yw.BLL.Bimface.Core"),
Assembly.Load("Yw.BLL.Hydro.Core"),
Assembly.Load("Yw.BLL.Map.Core"),
Assembly.Load("HStation.BLL.Xhs.Core")
);
DbFirstHelper.Initial();
Application.Run(new MainForm());
}
}
///
/// Õâ¾ÍÊÇÎÒÃÇÒªÔÚ·¢Éúδ´¦ÀíÒ쳣ʱ´¦ÀíµÄ·½·¨£¬ÎÒÕâÊÇд³ö´íÏêϸÐÅÏ¢µ½Îı¾£¬Èç³ö´íºóµ¯³öÒ»¸öƯÁÁµÄ³ö´íÌáʾ´°Ì壬¸ø´ó¼Ò×ö¸ö²Î¿¼
/// ×ö·¨ºÜ¶à£¬¿ÉÒÔÊǰѳö´íÏêϸÐÅÏ¢¼Ç¼µ½Îı¾¡¢Êý¾Ý¿â£¬·¢Ëͳö´íÓʼþµ½×÷ÕßÐÅÏä»ò³ö´íºóÖØÐ³õʼ»¯µÈµÈ
/// Õâ¾ÍÊÇÈÊÕß¼ûÈÊÖÇÕß¼ûÖÇ£¬´ó¼Ò×Ô¼º×öÁË¡£
///d
///
///
private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
var ex = e.Exception;
if (ex is Yw.Vmo.VException vmoEx)
{
Yw.LogHelper.Error("ϵͳ³öÏÖÄÚ²¿Òì³£,ERROR:249", vmoEx);
VmoExceptionTipFormHelper.Show(vmoEx);
}
else if (ex is Yw.Dto.InternalException internalEx)
{
Yw.LogHelper.Error("ϵͳ³öÏÖÄÚ²¿Òì³£,ERROR:249", internalEx);
}
else
{
Yw.LogHelper.Error("ϵͳ³öÏÖδ֪Òì³£,ERROR:249", ex);
MessageBoxHelper.ShowError($"ϵͳ³öÏÖδ֪Òì³££¬ÇëÖØÆôϵͳ£¡\r\n{ex.Message}");
}
}
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
var ex = e.ExceptionObject as Exception;
if (ex is Yw.Vmo.VException internalEx)
{
Yw.LogHelper.Error("ϵͳ³öÏÖÄÚ²¿Òì³£,ERROR:249", internalEx);
var dlg = new Yw.WinFrmUI.VmoExceptionInfoDlg();
dlg.SetBindingData(internalEx);
dlg.ShowDialog();
}
else
{
Yw.LogHelper.Error("ϵͳ³öÏÖδ֪Òì³£,ERROR:255", ex);
MessageBoxHelper.ShowError($"ϵͳ³öÏÖδ֪Òì³££¬ÇëÖØÆôϵͳ£¡\r\n{ex.Message}");
}
}
//
private static void TaskScheduler_UnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
{
//throw new NotImplementedException();
}
}
}