private async Task <bool> CreateDatabase() { DocumentDBContext.Initialize(tbAzureCosmosEndpoint.Text.Trim(), tbAzureKey.Text.Trim()); bool exists = await DocumentDBContext.DatabaseExistsAsync(); bool createSucceded = true; if (!exists) { try { await DocumentDBContext.CreateDatabaseAsync(); } catch (Exception exc) { Logging.Logger.Log(exc); createSucceded = false; } } return(createSucceded); }
private async Task InitializeDataSourcesAsync() { using (IUnitOfWork uow = UnitOfWorkFactory.CreateUnitOfWork()) { BusyMessage.Show("Checking for Azure database.", this); var settingsRepo = uow.SettingsRepository; string endpoint = settingsRepo.FindSingle(t => t.Key == GinAppSettingKeys.AZURE_DOCUMENTDB_ENDPOINT).Value; string key = settingsRepo.FindSingle(t => t.Key == GinAppSettingKeys.AZURE_DOCUMENTDB_KEY).Value; if (endpoint.ToLower().IndexOf("azure.com") >= 0 && !string.IsNullOrEmpty(key)) { DocumentDBContext.Initialize(endpoint, key); bool exists = await DocumentDBContext.DatabaseExistsAsync(); bool createSucceded = true; if (!exists) { BusyMessage.UpdateMessage("Creating Azure document database.."); try { await DocumentDBContext.CreateDatabaseAsync(); } catch (Exception exc) { Logging.Logger.Log(exc); createSucceded = false; BusyMessage.UpdateMessage("Creating Azure document database failed."); System.Threading.Thread.Sleep(2000); } } if (createSucceded) { exists = await DocumentDBContext.CollectionExistsAsync(); if (!exists) { try { BusyMessage.UpdateMessage("Creating Azure document database collections.."); await DocumentDBContext.CreateCollectionAsync(); createSucceded = true; } catch (Exception exc) { BusyMessage.UpdateMessage("Creating Azure document database collections failed."); System.Threading.Thread.Sleep(2000); Logging.Logger.Log(exc); createSucceded = false; } } } if (createSucceded) { try { await DocumentDBContext.CreateStoredProceduresAsync(); } catch (Exception exc) { BusyMessage.UpdateMessage("Creating database stored procedures failed."); System.Threading.Thread.Sleep(2000); Logging.Logger.Log(exc); createSucceded = false; } } DbIntitialized = true; BusyMessage.Close(); } else { BusyMessage.Close(); DbIntitialized = false; appTabs.TabPages.Remove(tabHome); appTabs.TabPages.Remove(tabFields); appTabs.TabPages.Remove(tabModules); appTabs.TabPages.Remove(tabPickupLists); appTabs.TabPages.Remove(tabClients); appTabs.TabPages.Remove(tabFarms); appTabs.TabPages.Remove(tabTrucks); appTabs.TabPages.Remove(tabDrivers); appTabs.TabPages.Remove(tabReports); appTabs.TabIndex = 0; MessageBox.Show("Azure Document DB connection settings are missing or incorrect. Please update Azure information in the Settings tab then restart the application."); } } }