using EntityFrameworkLib; using EntityFrameworkLib.Mappers; using Model; using Shared; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DBDataManager { public class DBSkinManager : ISkinsManager { private readonly LolContext context; public DBSkinManager() { } public DBSkinManager(LolContext context) { this.context = context; } async Task IGenericDataManager.AddItem(Skin? item) { if(item == null) { return null; } var additem = await context.AddAsync(item); await context.SaveChangesAsync(); return additem.Entity; } async Task IGenericDataManager.DeleteItem(Skin? item) { if(item == null) { return false; } context.Remove(item); await context.SaveChangesAsync(); return true; } Task> IGenericDataManager.GetItems(int index, int count, string? orderingPropertyName, bool descending) => context.Skins.toPocos().GetItemsWithFilterAndOrdering(s => true, index, count, orderingPropertyName, descending); private static Func filterByChampion = (skin, champion) => champion != null && skin.Champion.Equals(champion!); Task> ISkinsManager.GetItemsByChampion(Champion? champion, int index, int count, string? orderingPropertyName, bool descending) => context.Skins.toPocos().GetItemsWithFilterAndOrdering(skin => filterByChampion(skin, champion), index, count, orderingPropertyName, descending); private static Func filterByName = (skin, substring) => skin.Name.Contains(substring, StringComparison.InvariantCultureIgnoreCase); Task> IGenericDataManager.GetItemsByName(string substring, int index, int count, string? orderingPropertyName, bool descending) => context.Skins.toPocos().GetItemsWithFilterAndOrdering(skin => filterByName(skin, substring), index, count, orderingPropertyName, descending); Task IGenericDataManager.GetNbItems() => context.Skins.GetNbItemsWithFilter(s => true); Task ISkinsManager.GetNbItemsByChampion(Champion? champion) => context.Skins.toPocos().GetNbItemsWithFilter(skin => filterByChampion(skin, champion)); Task IGenericDataManager.GetNbItemsByName(string substring) => context.Skins.toPocos().GetNbItemsWithFilter(skin => filterByName(skin, substring)); Task IGenericDataManager.UpdateItem(Skin? oldItem, Skin? newItem) { throw new Exception(); } // => (IList)context.Skins.toPocos().UpdateItem(oldItem, newItem); } }