public async Task SetPluginTileComponent(string tileKey, PluginTileComponent component) { await TileLock.WaitAsync(); _pluginResolver.SetPluginTileComponent(tileKey, component); TileLock.Release(); }
public void SetPluginTileComponent(string tileKey, PluginTileComponent pluginTileComponent) { Console.WriteLine("SetPluginTileComponent"); Plugin plugin = _plugins.FirstOrDefault(plugin1 => plugin1.Value.PluginTiles.ContainsKey(tileKey)).Value; var oldPluginTile = plugin.PluginTiles[tileKey]; pluginTileComponent.Data = oldPluginTile.Item2.Data; pluginTileComponent.PluginKey = oldPluginTile.Item2.PluginKey; pluginTileComponent.TileKey = oldPluginTile.Item2.TileKey; pluginTileComponent.PluginSettings = oldPluginTile.Item2.PluginSettings; plugin.PluginTiles[tileKey] = new Tuple <ITile, PluginTileComponent>(oldPluginTile.Item1, pluginTileComponent); }
public AppDashPlugin GetPluginInstance(PluginTileComponent pluginTileComponent) { var tileTypes = pluginTileComponent.GetType().Assembly.GetTypes() .Where(type => typeof(ITile).IsAssignableFrom(type)).ToList(); if (!tileTypes.Any()) { return(null); } var pluginType = tileTypes.FirstOrDefault(tileType => tileType.BaseType?.GenericTypeArguments[1] == pluginTileComponent.GetType()) ?.BaseType?.GenericTypeArguments.FirstOrDefault(); if (pluginType == null) { return(null); } return(_pluginResolver.GetPluginInstance(pluginType)); }