using BowlingEF.Context; using BowlingEF.Entities; using BowlingLib.Model; using Business; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BowlingMaping { public class EquipeDbDataManager : IDataManager { #region Méthodes public async Task Add(Equipe _equipe) { bool result = false; using (var context = new BowlingContext()) { EquipeEntity entity = new EquipeEntity { Id = _equipe.Id, Nom = _equipe.Nom, Joueurs = _equipe.Joueurs.Select(j => new JoueurEntity { Id = j.Id, Pseudo = j.Pseudo }).ToList() }; context.Equipes.Add(entity); result = await context.SaveChangesAsync() == 1; } return result; } public async Task Delete(Equipe _equipe) { bool result = false; using (var context = new BowlingContext()) { EquipeEntity entity = context.Equipes.Find(_equipe.Id); context.Equipes.Remove(entity); result =await context.SaveChangesAsync() == 1; } return result; } public async Task> GetAll() { using (var context = new BowlingContext()) { return await context.Equipes.Select(e => new Equipe ( e.Id, e.Nom, e.Joueurs.Select(j => new Joueur(j.Id, j.Pseudo)).ToArray() )).ToListAsync(); } } public async Task GetDataWithName(string name) { using (var context = new BowlingContext()) { return await context.Equipes.Where(e => e.Nom == name).Select(e => new Equipe ( e.Id, e.Nom, e.Joueurs.Select(j => new Joueur(j.Id, j.Pseudo)).ToArray() )).FirstOrDefaultAsync(); } } public async Task< bool> Update(Equipe data) { bool result = false; using (var context = new BowlingContext()) { EquipeEntity entity = context.Equipes.Find(data.Id); entity.Nom = data.Nom; entity.Joueurs = data.Joueurs.Select(j => new JoueurEntity { Id = j.Id, Pseudo = j.Pseudo }).ToList(); result = await context.SaveChangesAsync() == 1; } return result; } #endregion } }