Exemplo n.º 1
0
        public async Task SetPluginTileComponent(string tileKey, PluginTileComponent component)
        {
            await TileLock.WaitAsync();

            _pluginResolver.SetPluginTileComponent(tileKey, component);

            TileLock.Release();
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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));
        }