public HealthVaultApp(HealthVaultAppSettings appSettings) { m_lock = new object(); m_appSettings = appSettings; m_serviceInfo = new ServiceInfoProxy() { ShellUrl = appSettings.ShellUrl, ServiceUrl = appSettings.ServiceUrl }; m_startupStatus = AppStartupStatus.Cancelled; m_appInfo = new AppInfoProxy(appSettings.MasterAppId); m_client = new HealthVaultClient(m_appInfo, m_serviceInfo, m_appSettings.UseWebAuthBroker); m_localVault = new LocalVault(this, appSettings.Folder, appSettings.Folder); m_vocabs = new Vocabs(this); }
private async Task EnsureProvisionedAsync(CancellationToken cancelToken) { m_startupStatus = AppStartupStatus.Pending; bool isNewApp = !IsAppCreated; try { m_startupStatus = await EnsureAppCreatedAsync(cancelToken); } catch { m_startupStatus = AppStartupStatus.Failed; throw; } if (m_startupStatus != AppStartupStatus.Success) { await SetUserAndSaveAsync(null, cancelToken); return; } // Set up the encrypted local vault if (m_appSettings.UseEncryption) { var encryptedStore = new EncryptedObjectStore( FolderObjectStore.CreateRoot(m_appSettings.Folder), Client.Cryptographer, Client.State.ProvisioningInfo.SharedSecret); m_localVault = new LocalVault(this, FolderObjectStore.CreateRoot(m_appSettings.Folder), encryptedStore); } // Set the cache setting m_localVault.RecordStores.MaxCachedItems = m_appSettings.MaxCachedItems; if (!isNewApp) { await LoadUserInfoAsync(cancelToken); } if (!HasUserInfo) { // // Download updated Person Information // await UpdateUserInfoAsync(cancelToken); } }