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.
101 lines
3.5 KiB
101 lines
3.5 KiB
using Entity_Framework.Entity;
|
|
using Entity_Framework;
|
|
using Modele.Classe;
|
|
using Entity_Framework.Factories;
|
|
using Dto.Factories;
|
|
|
|
namespace Extraction_Donnees.Extraction
|
|
{
|
|
public partial class Extraction
|
|
{
|
|
public Task<IEnumerable<Session>> GetSessionsByPilotes(string pseudo)
|
|
{
|
|
IEnumerable<Sessions> result = new List<Sessions>();
|
|
|
|
using (BDDContext db = new BDDContext())
|
|
{
|
|
bool checkPilote = db.Pilotes.Any(e => e.Pseudo == pseudo);
|
|
if (checkPilote == false)
|
|
{
|
|
return Task.FromResult<IEnumerable<Session>>(null);
|
|
}
|
|
result = (from session in db.Sessions
|
|
from pilotes in db.Pilotes
|
|
where pilotes.Id == session.IdPilote
|
|
select session).ToList();
|
|
}
|
|
return Task.FromResult<IEnumerable<Session>>(result.Select( e => e.EntityToModele()));
|
|
}
|
|
|
|
|
|
|
|
public Task<Session> AddSession(Session session,string namePseudo,string nameCircuit,string nameSession,string typeSession)
|
|
{
|
|
int idPilote;
|
|
using (BDDContext db = new BDDContext())
|
|
{
|
|
// Check si pilote existe
|
|
Pilotes piloteEntity = db.Pilotes.Where(e => e.Pseudo == namePseudo).FirstOrDefault();
|
|
if (piloteEntity == null)
|
|
{
|
|
return Task.FromResult<Session>(null);
|
|
}
|
|
|
|
idPilote = piloteEntity.Id;
|
|
// Check si circuit existe
|
|
Circuits circuitEntity = db.Circuits.Where( e => e.Name == nameCircuit).FirstOrDefault();
|
|
|
|
Sessions sessionsEntity = session.ModeleToEntity();
|
|
if(circuitEntity != null)
|
|
{
|
|
sessionsEntity.IdCircuit = circuitEntity.Id;
|
|
}
|
|
|
|
|
|
sessionsEntity.IdPilote = piloteEntity.Id;
|
|
sessionsEntity.Name = nameSession;
|
|
sessionsEntity.Type = typeSession;
|
|
db.Sessions.Add(sessionsEntity);
|
|
db.SaveChanges();
|
|
}
|
|
Console.WriteLine("Session fini !");
|
|
|
|
long idSession;
|
|
IEnumerable<Tours> tours = session.Tours.Select( e => e.ModeleToEntity());
|
|
using (BDDContext db = new BDDContext())
|
|
{
|
|
Sessions sessions = db.Sessions.Where(e => e.Name == nameSession && e.IdPilote == idPilote).First();
|
|
idSession = sessions.Id;
|
|
foreach (Tours tour in tours)
|
|
{
|
|
tour.IdSession = idSession;
|
|
db.Add(tour);
|
|
}
|
|
db.SaveChanges();
|
|
}
|
|
Console.WriteLine("Tour fini !");
|
|
|
|
using (BDDContext db = new BDDContext())
|
|
{
|
|
int i = 1;
|
|
foreach (Tour tour in session.Tours)
|
|
{
|
|
long idTour = db.Tours.Where(e => e.Numero == i && e.IdSession == idSession).First().Id;
|
|
|
|
foreach (Point point in tour.Points)
|
|
{
|
|
Points entityPoint = point.ModeleToEntity();
|
|
entityPoint.IdTours = idTour;
|
|
db.Points.Add(entityPoint);
|
|
}
|
|
i++;
|
|
}
|
|
db.SaveChanges();
|
|
}
|
|
Console.WriteLine("Point fini !");
|
|
|
|
return Task.FromResult<Session>(session);
|
|
}
|
|
}
|
|
}
|