You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
6.6 KiB
163 lines
6.6 KiB
using LibEntityFramework;
|
|
using Model;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace TrucAuMilieu
|
|
{
|
|
public partial class DataBdd
|
|
{
|
|
public ChampionContext contextCh = new ChampionContext();
|
|
public class ChampionsManager : IChampionsManager
|
|
{
|
|
private readonly DataBdd parent;
|
|
public ChampionsManager(DataBdd parent)
|
|
=> this.parent = parent;
|
|
public async Task<Champion?> AddItem (Champion? item)
|
|
//ajoute un champion à la base
|
|
{
|
|
await parent.contextCh.AddAsync(item.ChampToEf());
|
|
await parent.contextCh.SaveChangesAsync();
|
|
Debug.WriteLine("champion ajouté");
|
|
return item;
|
|
}
|
|
|
|
public async Task<bool> DeleteItem(Champion? item)
|
|
//supprimer un champion? je crois? et renvoie true si il est supprimé? à tester
|
|
{
|
|
if (parent.contextCh.Champs.Remove(item.ChampToEf()).Entity==item.ChampToEf())
|
|
{
|
|
await parent.contextCh.SaveChangesAsync();
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public async Task<IEnumerable<Champion?>> GetItems(int index, int count, string? orderingPropertyName = null, bool descending = false)
|
|
//requete sur les champions avec des arguments (genre la pagination est possible, et y'a le descending et tout)
|
|
{
|
|
if (orderingPropertyName != null)
|
|
{
|
|
if (descending)
|
|
{
|
|
return await Task.FromResult(parent.contextCh.Champs.OrderByDescending(c => typeof(ChampionEntity).GetProperty(orderingPropertyName)).Skip(index * count).Take(count).Select(ce => ce.EfToChamp()));
|
|
}
|
|
else
|
|
{
|
|
var pap = await Task.FromResult(parent.contextCh.Champs.OrderBy(c => typeof(ChampionEntity).GetProperty(orderingPropertyName)).Skip(index * count).Take(count).Select(ce => ce.EfToChamp()));
|
|
return pap;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var pap2= await Task.FromResult(parent.contextCh.Champs.Skip(index*count).Take(count).Select(ce => ce.EfToChamp()));
|
|
return pap2;
|
|
}
|
|
}
|
|
|
|
public Task<IEnumerable<Champion?>> GetItemsByCharacteristic(string charName, int index, int count, string? orderingPropertyName = null, bool descending = false)
|
|
//pas fait
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<IEnumerable<Champion?>> GetItemsByClass(ChampionClass championClass, int index, int count, string? orderingPropertyName = null, bool descending = false)
|
|
//pas fait
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public async Task<IEnumerable<Champion?>> GetItemsByName(string substring, int index, int count, string? orderingPropertyName = null, bool descending = false)
|
|
//requete des champions dont le nom contient substring
|
|
{
|
|
var i = from c in parent.contextCh.Champs where c.Name.Contains(substring) select c;
|
|
if (orderingPropertyName != null)
|
|
{
|
|
if (descending)
|
|
{
|
|
return await Task.FromResult(i.OrderByDescending(c => typeof(ChampionEntity).GetProperty(orderingPropertyName)).Skip(index * count).Take(count).Select(ce => ce.EfToChamp()));
|
|
}
|
|
else
|
|
{
|
|
var pap = await Task.FromResult(i.OrderBy(c => typeof(ChampionEntity).GetProperty(orderingPropertyName)).Skip(index * count).Take(count).Select(ce => ce.EfToChamp()));
|
|
return pap;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var pap2 = await Task.FromResult(i.Skip(index * count).Take(count).Select(ce => ce.EfToChamp()));
|
|
return pap2;
|
|
}
|
|
|
|
}
|
|
|
|
public Task<IEnumerable<Champion?>> GetItemsByRunePage(RunePage? runePage, int index, int count, string? orderingPropertyName = null, bool descending = false)
|
|
//pas fait
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<IEnumerable<Champion?>> GetItemsBySkill(Skill? skill, int index, int count, string? orderingPropertyName = null, bool descending = false)
|
|
//pas fait
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<IEnumerable<Champion?>> GetItemsBySkill(string skill, int index, int count, string? orderingPropertyName = null, bool descending = false)
|
|
//pas fait
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<int> GetNbItems() => Task.FromResult(parent.contextCh.Champs.Count());
|
|
//donne le nombre de champions dans la base
|
|
|
|
public Task<int> GetNbItemsByCharacteristic(string charName)
|
|
//pas fait
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<int> GetNbItemsByClass(ChampionClass championClass)
|
|
//pas fait
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<int> GetNbItemsByName(string substring)
|
|
//pas fait
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<int> GetNbItemsByRunePage(RunePage? runePage)
|
|
//pas fait
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<int> GetNbItemsBySkill(Skill? skill)
|
|
//pas fait
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<int> GetNbItemsBySkill(string skill)
|
|
//pas fait
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public Task<Champion?> UpdateItem(Champion? oldItem, Champion? newItem)
|
|
//met à jour un champion (pas fait)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
}
|
|
}
|