static void Main() { // Still want to let this application run with an expired license (as this is an enterprise level application), but in very a limited mode // For example, the user should be able to view the log //Support.SetLicense(); //if (Support.KernelExpired) // return; InitializeLicense(); if (ProcessChecker.IsOnlyProcess(Shell.storageServerName)) { #if (LEADTOOLS_V20_OR_LATER) if (DemosGlobal.IsDotNet45OrLaterInstalled() == false) { MessageBox.Show("To run this application, you must first install Microsoft .NET Framework 4.5 or later.", "Microsoft .NET Framework 4.5 or later Required", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } #endif Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); PacsProduct.ProductName = DicomDemoSettingsManager.ProductNameStorageServer; bool ok; string exeName = Path.GetFileNameWithoutExtension(Application.ExecutablePath); if (Demos.DemosGlobal.Is64Process( )) { exeName += "64"; } else { exeName += "32"; } Mutex m = new Mutex(true, exeName, out ok); #if !TUTORIAL_CUSTOM_DATABASE && !LEADTOOLS_V19_OR_LATER_MEDICAL_EXTERNAL_STORE CheckPacsConfigDemo(); #endif string globalPacsConfigPath = DicomDemoSettingsManager.GlobalPacsConfigFullFileName; if (File.Exists(globalPacsConfigPath)) { try { if (false == UpgradeConfigFiles()) { return; } } catch (Exception ex) { string msg = string.Format("Upgrade Failed!\n\n{0}", ex.Message); MessageBox.Show(msg, "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } try { string message = string.Empty; string[] productsToCheck = new string[] { DicomDemoSettingsManager.ProductNameStorageServer }; bool dbConfigured = GlobalPacsUpdater.IsDbComponentsConfigured(productsToCheck, out message); #if TUTORIAL_CUSTOM_DATABASE // When manually configuring the storage server to use a different database schema, the helper funciton 'IsDbComponentsConfigured' // will incorrectly detect that the database has not been configured. In this case, set 'dbConfigured' to true. // For more details, see the "Changing the LEAD Medical Storage Server to use a different database schema" tutorial. dbConfigured = true; #endif if (!dbConfigured && !RequestUserToConfigureDbSucess(message)) { return; } #if !TUTORIAL_CUSTOM_DATABASE if (!GlobalPacsUpdater.IsProductDatabaseUpTodate(DicomDemoSettingsManager.ProductNameStorageServer) && !RequestUserToUpgradeDbSucess( )) { return; } #endif IOptionsDataAccessAgent optionsAgent; System.Configuration.Configuration configuration = DicomDemoSettingsManager.GetGlobalPacsConfiguration(); if (!ok) { return; } optionsAgent = DataAccessFactory.GetInstance(new OptionsDataAccessConfigurationView(configuration, DicomDemoSettingsManager.ProductNameStorageServer, null)).CreateDataAccessAgent <IOptionsDataAccessAgent>(); DataAccessServices.RegisterDataAccessService <IOptionsDataAccessAgent>(optionsAgent); if (Login(string.Empty, false)) { //#if !DEBUG SplashForm.ShowSplash(); // #endif Shell shell = new Shell( ); shell.Run( ); } } catch (Exception ex) { MessageBox.Show("The program failed to run with the following error:\n\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { #if LEADTOOLS_V19_OR_LATER ProducerConsumerQueue.Instance.Shutdown(true); #endif m.Close( ); } } }