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.

82 lines
2.7 KiB

using Entity_Framework;
using Entity_Framework.Entity;
using Entity_Framework.Factories;
using Modele.Classe;
using System.Collections.Generic;
namespace Extraction_Donnees.Extraction
{
public partial class Extraction
{
public Task<IEnumerable<Ecurie>> GetEcuries()
{
IEnumerable<Ecurie> result = new List<Ecurie>();
using (BDDContext db = new BDDContext())
{
result = db.Ecuries.ToList().Select(e => e.EntityToModele());
}
return Task.FromResult<IEnumerable<Ecurie>>(result);
}
public Task<Ecurie> 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<Ecurie>(null);
}
return Task.FromResult<Ecurie>(ecurie.EntityToModele());
}
public Task<List<int>> AddEcurie(Ecurie ecurie, string pseudo)
{
// IEnumerable<int>
//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<int> result = new List<int>();
Ecuries ecurieEntity = ecurie.ModeleToEntity();
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<List<int>>(result);
}
bool chackPilotePseudo = db.Pilotes.Any(e => e.Pseudo == pseudo);
if ( chackPilotePseudo == false )
{
result.Add(1);
result.Add(3);
return Task.FromResult<List<int>>(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<List<int>>(result);
}
ecurieEntity.IdPiloteProprietaire = idPilote;
db.Add(ecurieEntity);
db.SaveChanges();
}
result.Add(0);
return Task.FromResult<List<int>>(result);
}
}
}