using Entity_Framework; using Entity_Framework.Entity; using Entity_Framework.Entity.Relations; using Entity_Framework.Factories; using Modele.Classe; using System.Collections.Generic; namespace Extraction_Donnees.Extraction { public partial class Extraction { public Task> GetEcuries() { IEnumerable result = new List(); IEnumerable list = new List(); using (BDDContext db = new BDDContext()) { result = db.Ecuries.ToList(); foreach (Ecuries ecu in result) { Ecurie ecurie = new Ecurie("Inconnu !"); ecurie.name = ecu.Name; ecurie.Owner = (from pilote in db.Pilotes from relation in db.RelationEcuriePilote from ecuTMP in db.Ecuries where ecuTMP.Id == relation.IdEcurie && relation.IdPilote == pilote.Id && relation.Grade == "Owner" && ecu.Id == ecuTMP.Id select pilote).Select( e => e.EntityToModele()).First(); ecurie.Members = (from relation in db.RelationEcuriePilote from pilotes in db.Pilotes where relation.IdPilote == pilotes.Id && relation.IdEcurie == ecu.Id && relation.Grade == "Member" select pilotes).ToList().Select(e => e.EntityToModele()).ToList(); ecurie.WaitingMembers = (from relation in db.RelationEcuriePilote from pilotes in db.Pilotes where relation.IdPilote == pilotes.Id && relation.IdEcurie == ecu.Id && relation.Grade == "WaitingMember" select pilotes).ToList().Select(e => e.EntityToModele()).ToList(); list.ToList().Add(ecurie); } } return Task.FromResult>(list); } public Task GetOneEcurie(string name) { Ecuries ecurie = new Ecuries(); using (BDDContext db = new BDDContext()) { ecurie = db.Ecuries.Where(e => e.Name == name).FirstOrDefault(); } if(ecurie == null) { return Task.FromResult(null); } return Task.FromResult(ecurie.EntityToModele()); } public Task> AddEcurie(Ecurie ecurie, string pseudo) { // IEnumerable //Indice 0 : Réussi ou pas -> value : 0 ok / 1 erreur //Indice 1 : L'erreur -> Value : 2 nom ecurie / 3 pilote introuvable / 4 fait déjà partie d'une ecurie List result = new List(); Ecuries ecurieEntity = ecurie.ModeleToEntity(); Relation_Pilote_Ecurie relation = new Relation_Pilote_Ecurie(); using (BDDContext db = new BDDContext()) { bool checkEcurieName = db.Ecuries.Any(e => e.Name == ecurie.name); if (checkEcurieName == true) { result.Add(1); result.Add(2); return Task.FromResult>(result); } bool chackPilotePseudo = db.Pilotes.Any(e => e.Pseudo == pseudo); if ( chackPilotePseudo == false ) { result.Add(1); result.Add(3); return Task.FromResult>(result); } int idPilote = db.Pilotes.Where(e => e.Pseudo == pseudo).First().Id; bool checkPiloteWithEcurie = db.Ecuries.Any( e => e.IdPiloteProprietaire == idPilote); if (checkPiloteWithEcurie == true ) { result.Add(1); result.Add(4); return Task.FromResult>(result); } ecurieEntity.IdPiloteProprietaire = idPilote; relation.IdPilote = idPilote; db.Add(ecurieEntity); db.SaveChanges(); } using (BDDContext db = new BDDContext()) { Ecuries ecurieRelation = new Ecuries(); int idEcurie = db.Ecuries.Where(e => e.Name == ecurie.name).First().Id; relation.IdEcurie = idEcurie; relation.Grade = "Owner"; db.Add(ecurieRelation); db.SaveChanges(); } result.Add(0); return Task.FromResult>(result); } } }