Пример #1
0
        public async Task <ExtensionManifest> InstallExtension(NetworkExtensionModel model)
        {
            using var client = new HttpClient();
            var json = await client.GetStringAsync(Path.Combine(EXTENSION_REMOTE, model.Src, "manifest.json"));

            var manifest = JsonConvert.DeserializeObject <ExtensionManifest>(json);
            var cache    = await FileCache.Instance.GetFromCacheAsync(new Uri(Path.Combine(EXTENSION_REMOTE, model.Src,
                                                                                           manifest.Entry)));

            var rootFolder = await GetExtensionFolder();

            var extensionFolder = await rootFolder.CreateFolderAsync(manifest.Name, CreationCollisionOption.OpenIfExists);

            await cache.CopyAsync(extensionFolder, manifest.Entry, NameCollisionOption.ReplaceExisting);

            var manifestFile = await extensionFolder.CreateFileAsync("manifest.json", CreationCollisionOption.ReplaceExisting);

            await FileIO.WriteTextAsync(manifestFile, json);

            AddOrUpgradeExtension(extensionFolder.Path, manifest);
            return(manifest);
        }
Пример #2
0
        public async Task InstallExtension(NetworkExtensionModel model)
        {
            await _manager.InstallExtension(model);

            NetworkExtensions.Refresh();
        }