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); }
public NavViewModel() { LockSettingsCommand = new GalaSoft.MvvmLight.CommandWpf.RelayCommand(this.ExecuteLockSettings); SavePasswordCommand = new GalaSoft.MvvmLight.CommandWpf.RelayCommand(this.ExecuteSavePasswordCommand); CancelCommand = new GalaSoft.MvvmLight.CommandWpf.RelayCommand(this.ExecuteCancelCommand); UnlockCommand = new GalaSoft.MvvmLight.CommandWpf.RelayCommand(this.ExecuteUnlockCommand); SaveUnlockCommand = new GalaSoft.MvvmLight.CommandWpf.RelayCommand(this.ExecuteSaveUnlockCommand); Drivers = new ObservableCollection <ComboBoxItemViewModel>(); PasswordModalVisible = false; UnlockPasswordModalVisible = false; using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork()) { var setting = dp.SettingsRepository.FindSingle(k => k.Key == TruckClientSettingKeys.ADMIN_PASSWORD); if (setting != null && !string.IsNullOrWhiteSpace(setting.Value)) { SettingsLocked = true; } else { SettingsLocked = false; } var documentDbSetting = dp.SettingsRepository.FindSingle(x => x.Key == TruckClientSettingKeys.DOCUMENT_DB_KEY); var syncIntervalSetting = dp.SettingsRepository.FindSingle(x => x.Key == TruckClientSettingKeys.DATA_SYNC_INTERVAL); var endpointSetting = dp.SettingsRepository.FindSingle(x => x.Key == TruckClientSettingKeys.DOCUMENTDB_ENDPOINT); string key = ""; string endpoint = ""; if (documentDbSetting != null) { key = documentDbSetting.Value; } if (endpointSetting != null) { endpoint = endpointSetting.Value; } if (string.IsNullOrWhiteSpace(key) || string.IsNullOrWhiteSpace(endpoint)) { CloudDBInitialized = false; HasCloudSettings = false; } else { HasCloudSettings = true; try { Task.Run(async() => { DocumentDBContext.Initialize(endpoint, key); if (!await DocumentDBContext.DatabaseExistsAsync()) { CloudDBInitialized = true; } }); } catch (Exception exc) { Logging.Logger.Log(exc); } } } Messenger.Default.Register <BusyMessage>(this, (action) => ReceiveBusyMessage(action)); Messenger.Default.Register <DialogClosedMessage>(this, (action => ReceiveDialogClosed(action))); Messenger.Default.Register <DialogOpenedMessage>(this, (action => ReceiveDialogOpened(action))); refresh(); Timer timer = new Timer(25000); timer.Elapsed += (sender, e) => refresh(); timer.Start(); }
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."); } } }