using Dto.Classe; using Dto.Factories; using Entity_Framework; using Entity_Framework.Entity; using Entity_Framework.Factories; using Modele.Classe; using System.Security.Cryptography; using System.Text; namespace Extraction_Donnees.Extraction { public partial class Extraction { public Task> GetPilotes() { IEnumerable result = new List(); using (BDDContext db = new BDDContext()) { result = db.Pilotes.ToList().Select(e => e.EntityToModele()); } return Task.FromResult(result); } public Task GetOnePilote(string pseudo) { Pilotes pilote = new Pilotes(); using (BDDContext db = new BDDContext()) { pilote = db.Pilotes.Where( e => e.Pseudo == pseudo).FirstOrDefault(); } if (pilote == null) { return Task.FromResult(null); } return Task.FromResult(pilote.EntityToModele()); } public Task AddPilote(Pilote pilote) { Pilotes piloteEntity = pilote.ModeleToEntity(); using (BDDContext db = new BDDContext()) { IEnumerable piloteCheck = db.Pilotes.Where(e => e.Pseudo == piloteEntity.Pseudo ); if (piloteCheck.Count() != 0) { return Task.FromResult(null); } db.Add(piloteEntity); db.SaveChanges(); } return Task.FromResult(pilote); } public Task CheckPilote(string Email, string password) { byte[] passwordByte = Encoding.UTF8.GetBytes(password); SHA256 sha256 = SHA256.Create(); byte[] hashedByte = sha256.ComputeHash(passwordByte); string hashedPassword = Convert.ToBase64String(hashedByte); using (BDDContext db = new BDDContext()) { Pilotes pilote = db.Pilotes.Where(e => e.Email == Email && e.Password == hashedPassword).FirstOrDefault(); if (pilote == null) { return Task.FromResult(null); } return Task.FromResult(pilote.EntityToModele()); } } } }