using Model; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Stub { public partial class StubData { private List players = new() { new Player("Aurelien"), new Player("Theo"), new Player("Maxence"), new Player("Zakariya"), }; public class PlayersManager : IPlayersManager { private readonly StubData parent; public PlayersManager(StubData parent) => this.parent = parent; public Task AddItem(Player? item) => parent.players.AddItem(item); public Task DeleteItem(Player? item) => parent.players.DeleteItem(item); public Task> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false) => parent.players.GetItemsWithFilterAndOrdering( c => true, index, count, orderingPropertyName, descending); public Task GetNbItems() => Task.FromResult(parent.players.Count()); public Task UpdateItem(Player? oldItem, Player? newItem) => parent.players.UpdateItem(oldItem, newItem); private Func filterByPseudo = (player, substring) => player.Pseudo.Contains(substring, StringComparison.InvariantCultureIgnoreCase); private Func filterById = (player, id) => player.Id.Equals(id); public Task> GetItemsByPseudo(string charPseudo, int index, int count, string? orderingPropertyName, bool descending = false) => parent.players.GetItemsWithFilterAndOrdering(player => filterByPseudo(player, charPseudo), index, count, orderingPropertyName, descending); public Task GetNbItemsByPseudo(string charPseudo) { throw new NotImplementedException(); } public Task> GetItemsById(int id) { return parent.players.GetItemsWithFilterAndOrdering(player => filterById(player, id), 0, 1); } } } }