private void OnStart(PluginUpdate update) { var builder = ImmutableList.CreateBuilder <Plugin>(); foreach (var rest in update.Rest) { var plugin = Plugins.FirstOrDefault(p => p.Metadata == rest); if (plugin != null) { builder.Add(plugin); } } // Stop schedules of any removed plugins foreach (var metadata in update.Removed) { var plugin = Plugins.FirstOrDefault(p => p.Metadata == metadata); plugin?.Stop(); } foreach (var metadata in update.Added) { var plugin = new Plugin(metadata, _scheduler); builder.Add(plugin); plugin.Start(); } Plugins = builder.ToImmutableList(); _plugins.OnNext(Plugins); }
public async Task <IPlugin> Save() { var data = new PluginUpdate { Id = Id, CreatedAt = CreatedAt, ApiId = ApiId, Config = Config, ConsumerId = ConsumerId, Enabled = Enabled }; var response = await _requestFactory.Parent.Put <Plugin>(data); response.Configure(_requestFactory); return(response); }
private void btnCheckForUpdates_Click(object sender, EventArgs e) { PluginAppSettings.SetString("AutomaticUpdates", "False"); PluginUpdate.Check(); }