Exemplo n.º 1
0
        private async Task InstallOrUpdatePlugins(IList <Plugin> plugins)
        {
            if (_semaphore.Wait(100))
            {
                try
                {
                    var tasks = new List <Task>();
                    foreach (var plug in plugins)
                    {
                        var pluginDownloader = new PluginDownloader(plug, false, _api, _updateHub, _coreServer,
                                                                    _loader, false);

                        tasks.Add(pluginDownloader.Download());
                    }

                    await Task.WhenAll(tasks.ToArray());

                    _coreServer.Restart();
                }
                finally
                {
                    _semaphore.Release();
                }
            }
        }
Exemplo n.º 2
0
        private Task DownloadPlugin(Plugin plugin, bool install)
        {
            Task.Run(async() =>
            {
                var pluginDownloader = new PluginDownloader(plugin, install, _api, _updateHub, _coreServer);

                await pluginDownloader.Download();
            });
            return(Task.CompletedTask);
        }
Exemplo n.º 3
0
        public Task UpdateAllPlugin(IList <Plugin> plugins)
        {
            foreach (var plug in plugins)
            {
                Task.Run(async() =>
                {
                    var pluginDownloader = new PluginDownloader(plug, false, _api, _updateHub, _coreServer, false);

                    await pluginDownloader.Download();
                });
            }

            return(Task.CompletedTask);
        }
Exemplo n.º 4
0
        private Task DownloadPlugin(Plugin plugin, bool install)
        {
            Task.Run(async() =>
            {
                if (!await _semaphore.WaitAsync(10))
                {
                    return;
                }

                try
                {
                    var pluginDownloader =
                        new PluginDownloader(plugin, install, _api, _updateHub, _coreServer, _loader);

                    await pluginDownloader.Download();
                }
                finally
                {
                    _semaphore.Release();
                }
            });
            return(Task.CompletedTask);
        }