public static void Main() { App app = new App(); // splash Splasher.Splash = new View.SplashScreen(); Splasher.ShowSplash(); //for (int i = 0; i < 5000; i += 1) //{ // MessageListener.Instance.ReceiveMessage(string.Format("Load module {0}", i)); // Thread.Sleep(1); //} // таймаут запуска приложения string cfgValue = CfgFileHelper.GetAppSetting("StartTimeout"); int startTimeout = 0; if (cfgValue != null) { startTimeout = cfgValue.ToInt(); } if (startTimeout != 0) { for (int i = startTimeout; i > 0; i--) { MessageListener.Instance.ReceiveMessage($"Таймаут запуска приложения - {i} секунд."); System.Threading.Thread.Sleep(1000); } } MessageListener.Instance.ReceiveMessage("Инициализация журнала событий..."); cfgValue = AppLib.InitAppLogger(); if (cfgValue != null) { appExit(1, "Ошибка инициализации журнала приложения: " + cfgValue); } System.Threading.Thread.Sleep(500); AppLib.WriteLogInfoMessage("**** Start application ****"); // защита PSW-файлом // текст в MessageListener.Instance прибинден к текстовому полю на сплэше MessageListener.Instance.ReceiveMessage("Проверка лицензии..."); pswLib.CheckProtectedResult checkProtectedResult; if (pswLib.Hardware.IsCurrentAppProtected("ClientOrderQueue", out checkProtectedResult) == false) { AppLib.WriteLogErrorMessage(checkProtectedResult.LogMessage); appExit(2, checkProtectedResult.CustomMessage); return; } System.Threading.Thread.Sleep(500); // информация о файлах, сборках и настройках из конфиг-файлов MessageListener.Instance.ReceiveMessage("Получаю информацию о сборках и настройках..."); // для хранения в свойствах приложения (из config-файла или др.) setAppGlobalValues(); AppLib.WriteLogInfoMessage(" - файл: {0}, Version {1}", AppEnvironment.GetAppFullFile(), AppEnvironment.GetAppVersion()); ITSAssemblyInfo asmInfo = new ITSAssemblyInfo("IntegraLib"); AppLib.WriteLogInfoMessage(" - Integra lib: '{0}', Version {1}", asmInfo.FullFileName, asmInfo.Version); asmInfo = new ITSAssemblyInfo("IntegraWPFLib"); AppLib.WriteLogInfoMessage(" - Integra WPF lib: '{0}', Version {1}", asmInfo.FullFileName, asmInfo.Version); AppLib.WriteLogInfoMessage("Системное окружение: " + AppEnvironment.GetEnvironmentString()); AppLib.WriteLogInfoMessage("Настройки из config-файла: " + CfgFileHelper.GetAppSettingsFromConfigFile()); // флажки для логов cfgValue = CfgFileHelper.GetAppSetting("IsWriteTraceMessages"); WpfHelper.SetAppGlobalValue("IsWriteTraceMessages", cfgValue.ToBool()); System.Threading.Thread.Sleep(300); // проверить доступность БД MessageListener.Instance.ReceiveMessage("Проверяю доступность к базе данных..."); AppLib.CheckDBConnection(typeof(KDSContext)); // настройка приложения app.InitializeComponent(); // определенные в app.xaml MessageListener.Instance.ReceiveMessage("Работаю..."); View.MainWindow mWindow = new View.MainWindow(); try { app.Run(mWindow); } catch (Exception ex) { AppLib.WriteLogErrorMessage(ex.ToString()); MessageBox.Show(ex.Message, "Error Application", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK); } AppLib.WriteLogInfoMessage("**** End application ****"); }