Nouvelle IDataPersistance pas finie psk malade :(

pull/138/head
Hugo LIVET 2 years ago
parent d3d1b57838
commit acb675e96a

@ -0,0 +1,148 @@
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Data
{
public class PersAPI : IPersistanceManager
{
// /!\ Toutes les méthodes ici permettent d'uniquement manipuler une stratégie de persistance
// /!\ et ne doit en aucun cas manipuler la mémoire !
//actions sur les inscrits
public bool AjouterInscrit(Inscrit inscrit)
{
return ClientAPI.PostAddInscritAsync(inscrit.Nom, inscrit.Prenom, inscrit.Mail, inscrit.Mdp).GetAwaiter().GetResult();
}
public bool SupprimerInscrit(Inscrit inscrit)
{
throw new NotImplementedException();
}
public bool ModifierMdpInscrit(string mail, string nouveauMdp)
{
return ClientAPI.PutPasswordInscritAsync(mail,nouveauMdp).GetAwaiter().GetResult();
}
public Inscrit RecupererInscrit(string mail)
{
List<Inscrit> inscrits = ClientAPI.GetInscritAsync(mail).GetAwaiter().GetResult();
if(inscrits.Count >= 1)
{
throw new ArgumentException("Cet email contient plusieurs utilisateurs pour la même adresse");
}
return inscrits.FirstOrDefault();
}
public bool EmailDisponible(string mail)
{
throw new NotImplementedException();
}
//actions sur les banques
public bool AjouterBanque(Banque banque)
{
throw new NotImplementedException();
}
public bool SupprimerBanque(Banque banque)
{
throw new NotImplementedException();
}
public bool ModifierBanque(Banque banque)
{
throw new NotImplementedException();
}
public IList<Banque> RecupererBanques(Inscrit inscrit)
{
throw new NotImplementedException();
}
public IList<Banque> RecupererBanquesDisponible()
{
throw new NotImplementedException();
}
//actions sur les comptes
public bool AjouterCompte(Compte compte)
{
throw new NotImplementedException();
}
public bool SupprimerCompte(Compte compte)
{
throw new NotImplementedException();
}
public bool ModifierCompte(Compte compte)
{
throw new NotImplementedException();
}
public IList<Compte> RecupererCompte(Banque banque)
{
throw new NotImplementedException();
}
//actions sur les Opérations
public bool AjouterOperation(Compte compte)
{
throw new NotImplementedException();
}
public bool SupprimerOperation(Compte compte)
{
throw new NotImplementedException();
}
public bool ModifierOperation(Compte compte)
{
throw new NotImplementedException();
}
public IList<Compte> RecupererOperation(Compte compte)
{
throw new NotImplementedException();
}
//actions sur les Planifications
public bool AjouterPlanification(Compte compte)
{
throw new NotImplementedException();
}
public bool SupprimerPlanification(Compte compte)
{
throw new NotImplementedException();
}
public bool ModifierPlanification(Compte compte)
{
throw new NotImplementedException();
}
public IList<Compte> RecupererPlanification(Compte compte)
{
throw new NotImplementedException();
}
//actions sur les Echéances
public bool AjouterEcheance(Compte compte)
{
throw new NotImplementedException();
}
public bool SupprimerEcheance(Compte compte)
{
throw new NotImplementedException();
}
public bool ModifierEcheance(Compte compte)
{
throw new NotImplementedException();
}
public IList<Compte> RecupererEcheance(Compte compte)
{
throw new NotImplementedException();
}
//actions utilitaire
public bool TestConnexion()
{
throw new NotImplementedException();
}
}
}

@ -0,0 +1,199 @@
using Microsoft.Maui.ApplicationModel.Communication;
using Microsoft.Maui.Graphics;
using Model;
using Npgsql;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Data
{
public class PersSQL : IPersistanceManager
{
Hash hash = new Hash();
private static string connexionBaseDeDonnees = String.Format("Server=2.3.8.130; Username=postgres; Database=conseco; Port=5432; Password=lulu; SSLMode=Prefer");
private static NpgsqlConnection dbAcces = new NpgsqlConnection(connexionBaseDeDonnees);
// /!\ Toutes les méthodes ici permettent d'uniquement manipuler une stratégie de persistance
// /!\ et ne doit en aucun cas manipuler la mémoire !
//actions sur les inscrits
public bool AjouterInscrit(Inscrit inscrit)
{
string mdpHash = hash.CreateHashCode(inscrit.Mdp);
dbAcces.Open();
using var cmd = new NpgsqlCommand($"INSERT INTO Inscrit (nom,prenom,mail,mdp) VALUES ((@name), (@surname), (@mail), (@password))", dbAcces)
{
Parameters =
{
new NpgsqlParameter("name", inscrit.Nom),
new NpgsqlParameter("surname", inscrit.Prenom),
new NpgsqlParameter("mail", inscrit.Mail),
new NpgsqlParameter("password", mdpHash),
}
};
cmd.ExecuteNonQueryAsync();
dbAcces.Close();
return true;
}
public bool SupprimerInscrit(Inscrit inscrit)
{
dbAcces.Open();
using var cmd = new NpgsqlCommand($"DELETE FROM INSCRIT WHERE mail=(@mail)", dbAcces)
{
Parameters =
{
new NpgsqlParameter("mail", inscrit.Mail)
}
};
cmd.ExecuteNonQueryAsync();
dbAcces.Close();
return true;
}
public bool ModifierMdpInscrit(string mail, string nouveauMdp)
{
dbAcces.Open();
using var cmd = new NpgsqlCommand($"UPDATE Inscrit SET mdp = (@mdp) WHERE mail = (@mail)", dbAcces)
{
Parameters =
{
new NpgsqlParameter("mail", mail),
new NpgsqlParameter("mdp", nouveauMdp)
}
};
cmd.ExecuteNonQueryAsync();
dbAcces.Close();
return true;
}
public Inscrit RecupererInscrit(string mail)
{
IList<Inscrit> inscrits = new List<Inscrit>();
dbAcces.Open();
NpgsqlDataReader dbReader = new NpgsqlCommand("SELECT * FROM Inscrit WHERE mail = (@mail)", dbAcces).ExecuteReader();
while (dbReader.Read())
{
inscrits.Add(new Inscrit(dbReader.GetInt32(0), dbReader.GetString(1), dbReader.GetString(3), dbReader.GetString(2), dbReader.GetString(4)));
}
dbReader.Close();
dbAcces.Close();
return inscrits.FirstOrDefault();
}
public bool EmailDisponible(string mail)
{
throw new NotImplementedException();
}
//actions sur les banques
public bool AjouterBanque(Banque banque)
{
throw new NotImplementedException();
}
public bool SupprimerBanque(Banque banque)
{
throw new NotImplementedException();
}
public bool ModifierBanque(Banque banque)
{
throw new NotImplementedException();
}
public IList<Banque> RecupererBanques(Inscrit inscrit)
{
throw new NotImplementedException();
}
public IList<Banque> RecupererBanquesDisponible()
{
throw new NotImplementedException();
}
//actions sur les comptes
public bool AjouterCompte(Compte compte)
{
throw new NotImplementedException();
}
public bool SupprimerCompte(Compte compte)
{
throw new NotImplementedException();
}
public bool ModifierCompte(Compte compte)
{
throw new NotImplementedException();
}
public IList<Compte> RecupererCompte(Banque banque)
{
throw new NotImplementedException();
}
//actions sur les Opérations
public bool AjouterOperation(Compte compte)
{
throw new NotImplementedException();
}
public bool SupprimerOperation(Compte compte)
{
throw new NotImplementedException();
}
public bool ModifierOperation(Compte compte)
{
throw new NotImplementedException();
}
public IList<Compte> RecupererOperation(Compte compte)
{
throw new NotImplementedException();
}
//actions sur les Planifications
public bool AjouterPlanification(Compte compte)
{
throw new NotImplementedException();
}
public bool SupprimerPlanification(Compte compte)
{
throw new NotImplementedException();
}
public bool ModifierPlanification(Compte compte)
{
throw new NotImplementedException();
}
public IList<Compte> RecupererPlanification(Compte compte)
{
throw new NotImplementedException();
}
//actions sur les Echéances
public bool AjouterEcheance(Compte compte)
{
throw new NotImplementedException();
}
public bool SupprimerEcheance(Compte compte)
{
throw new NotImplementedException();
}
public bool ModifierEcheance(Compte compte)
{
throw new NotImplementedException();
}
public IList<Compte> RecupererEcheance(Compte compte)
{
throw new NotImplementedException();
}
//actions utilitaire
public bool TestConnexion()
{
throw new NotImplementedException();
}
}
}

@ -2,11 +2,11 @@
namespace Data
{
public class Stub : IPersistanceManager
public class PersStub : IPersistanceManager
{
private List<Inscrit> lesInscrits = new List<Inscrit>();
public Stub()
public PersStub()
{
lesInscrits.Add(new Inscrit(
1,

@ -8,21 +8,55 @@ namespace Model
{
public interface IPersistanceManager
{
string GetId(string mail);
void SupprimerInscritBdd(Inscrit inscrit);
void SupprimerBanqueBdd(Inscrit inscrit, Banque banque);
void SupprimerToutesBanquesBdd(Inscrit inscrit);
void CreateInscrit(Inscrit inscrit);
string LastInscrit();
bool ExistEmail(string mail);
void ChangePasswordBdd(string mail, string newMdp);
string RecupMdpBdd(string mail);
int CalculTotalSoldeComtpe(Inscrit user);
List<Banque> LoadBanqueId(int id);
public bool TestConnexionAsDatabase();
public List<Banque> ImportBanques();
public Inscrit GetInscrit(string mail);
public IList<Compte> GetCompteFromOFX(string ofx);
// /!\ Toutes les méthodes ici permettent d'uniquement manipuler une stratégie de persistance
// /!\ et ne doit en aucun cas manipuler la mémoire !
//actions sur les inscrits
bool AjouterInscrit(Inscrit inscrit);
bool SupprimerInscrit(Inscrit inscrit);
bool ModifierMdpInscrit(string mail, string nouveauMdp);
Inscrit RecupererInscrit(string mail);
bool EmailDisponible(string mail);
//actions sur les banques
bool AjouterBanque(Banque banque);
bool SupprimerBanque(Banque banque);
bool ModifierBanque(Banque banque);
IList<Banque> RecupererBanques(Inscrit inscrit);
IList<Banque> RecupererBanquesDisponible();
//actions sur les comptes
bool AjouterCompte(Compte compte);
bool SupprimerCompte(Compte compte);
bool ModifierCompte(Compte compte);
IList<Compte> RecupererCompte(Banque banque);
//actions sur les Opérations
bool AjouterOperation(Compte compte);
bool SupprimerOperation(Compte compte);
bool ModifierOperation(Compte compte);
IList<Compte> RecupererOperation(Compte compte);
//actions sur les Planifications
bool AjouterPlanification(Compte compte);
bool SupprimerPlanification(Compte compte);
bool ModifierPlanification(Compte compte);
IList<Compte> RecupererPlanification(Compte compte);
//actions sur les Echéances
bool AjouterEcheance(Compte compte);
bool SupprimerEcheance(Compte compte);
bool ModifierEcheance(Compte compte);
IList<Compte> RecupererEcheance(Compte compte);
//actions utilitaire
bool TestConnexion();
}
}

Loading…
Cancel
Save