public Task <RegistryStorageFolder> RegistryAsync(StorageFolder folder) { return(Task.Run(() => { lock (_registryStorageFolders) { if (_registryStorageFolders.Count == StorageApplicationPermissions.FutureAccessList.MaximumItemsAllowed) { throw new FullRecordRegistryStorageFolderException( $"Maximum items allowed {StorageApplicationPermissions.FutureAccessList.MaximumItemsAllowed}"); } RegistryStorageFolder registryStorageFolder = null; if (_registryStorageFolders.TryGetValue(folder.Path, out var oldfolder)) { StorageApplicationPermissions.FutureAccessList.AddOrReplace(oldfolder.Token, folder); registryStorageFolder = new RegistryStorageFolder(oldfolder.Token, this); } else { string token = StorageApplicationPermissions.FutureAccessList.Add(folder); registryStorageFolder = new RegistryStorageFolder(token, this); } _registryStorageFolders[folder.Path] = registryStorageFolder; return registryStorageFolder; } })); }
private async Task <RegistryStorageFolderService> InitializeAsync() { foreach (var accessListEntry in StorageApplicationPermissions.FutureAccessList.Entries) { string token = accessListEntry.Token; RegistryStorageFolder registryStorageFolder = new RegistryStorageFolder(token, this); StorageFolder storageFolder = await registryStorageFolder.GetStorageFolderAsync(); this._registryStorageFolders[storageFolder.Path] = registryStorageFolder; } return(this); }
public async Task <StorageFolder> GetStorageFolderTask(RegistryStorageFolder registryStorageFolder) { return(await StorageApplicationPermissions.FutureAccessList.GetFolderAsync(registryStorageFolder.Token));; }