private static void FormMainInstance_Shown(object sender, EventArgs e) { splashScreen?.Invoke((Action) delegate { splashScreen.Close(); splashScreen.Dispose(); }); FormMainInstance.Activate(); FormMainInstance.TopMost = false; }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); FormSplashFOCA splashScreen = new FormSplashFOCA("Open Source"); splashScreen.Show(); Application.DoEvents(); //Load the FOCA Running = true; SqlConnectionStringBuilder connectionStringBuilder = null; bool csUpdated = false; try { ConnectionStringSettings csFromConfig = ConfigurationManager.ConnectionStrings[nameof(FocaContextDb)]; //If there is no connection string configured, try with SQLEXPRESS instance if (csFromConfig == null || String.IsNullOrEmpty(csFromConfig.ConnectionString)) { connectionStringBuilder = new SqlConnectionStringBuilder(SQLExpressConnectionString); csUpdated = true; } else { connectionStringBuilder = new SqlConnectionStringBuilder(csFromConfig.ConnectionString); if (String.IsNullOrWhiteSpace(connectionStringBuilder.InitialCatalog)) { connectionStringBuilder.InitialCatalog = FocaDatabaseName; } } } catch (ArgumentException) { csUpdated = true; connectionStringBuilder = new SqlConnectionStringBuilder(SQLExpressConnectionString); } while (!FocaContextDb.IsDatabaseAvailable(connectionStringBuilder.ToString())) { MessageBox.Show("FOCA needs a SQL database. Please setup your connection and try again.", "Database not found", MessageBoxButtons.OK, MessageBoxIcon.Error); // Display the connection dialog using (DataConnectionDialog dlg = new DataConnectionDialog(connectionStringBuilder)) { if (DialogResult.OK != dlg.ShowDialog(splashScreen)) { Environment.Exit(0); } } csUpdated = true; } if (csUpdated) { UpdateConnectionString(connectionStringBuilder.ToString()); } data = new Data(); FormMainInstance = new FormMain(); FormOptionsInstance = new FormOptions(); splashScreen.Close(); splashScreen.Dispose(); InitializeServicePointManager(); Application.Run(FormMainInstance); }