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); }
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; }