예제 #1
0
        public void SetPluginFavorites <T>(IHasFavoritesPlugin plugin, string pluginName) where T : ServerItem
        {
            if (_favoritesResponse == null)
            {
                return;
            }
            var obj = JsonSerializer.DeserializeFromString <ServerResponse <List <PluginFavorites <T> > > >(_favoritesResponse);
            List <ServerItem> itemList;

            if (obj.Result.Any(o => o.Name == pluginName))
            {
                itemList = obj.Result.First(o => o.Name == pluginName).Items.Cast <ServerItem>().ToList();
            }
            else
            {
                itemList = new List <ServerItem>();
            }
            plugin.Favorites = itemList;
            var pf = new PluginFavorites <ServerItem>()
            {
                Name = pluginName, Items = itemList
            };

            cachedFavorites.Add(pf);
        }
예제 #2
0
        private void AddToCache(string pluginName, ServerItem item)
        {
            List <ServerItem> Items;

            if (cachedFavorites.Any(p => p.Name == pluginName))
            {
                var pluginFavorites = cachedFavorites.FirstOrDefault(p => p.Name == pluginName);
                pluginFavorites.Items.Add(item);
                Items = pluginFavorites.Items;
            }
            else
            {
                var pluginFavorites = new PluginFavorites <ServerItem>()
                {
                    Name = pluginName, Items = new List <ServerItem>()
                    {
                        item
                    }
                };
                cachedFavorites.Add(pluginFavorites);
                Items = pluginFavorites.Items;
            }
            (_core.PluginLoader.LoadedPlugins.First(o => o.Key == pluginName).Value as IHasFavoritesPlugin).Favorites = Items;
        }