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 namespace Data
{ {
public class Stub : IPersistanceManager public class PersStub : IPersistanceManager
{ {
private List<Inscrit> lesInscrits = new List<Inscrit>(); private List<Inscrit> lesInscrits = new List<Inscrit>();
public Stub() public PersStub()
{ {
lesInscrits.Add(new Inscrit( lesInscrits.Add(new Inscrit(
1, 1,

@ -8,21 +8,55 @@ namespace Model
{ {
public interface IPersistanceManager public interface IPersistanceManager
{ {
string GetId(string mail); // /!\ Toutes les méthodes ici permettent d'uniquement manipuler une stratégie de persistance
void SupprimerInscritBdd(Inscrit inscrit); // /!\ et ne doit en aucun cas manipuler la mémoire !
void SupprimerBanqueBdd(Inscrit inscrit, Banque banque);
void SupprimerToutesBanquesBdd(Inscrit inscrit); //actions sur les inscrits
void CreateInscrit(Inscrit inscrit); bool AjouterInscrit(Inscrit inscrit);
string LastInscrit(); bool SupprimerInscrit(Inscrit inscrit);
bool ExistEmail(string mail); bool ModifierMdpInscrit(string mail, string nouveauMdp);
void ChangePasswordBdd(string mail, string newMdp); Inscrit RecupererInscrit(string mail);
string RecupMdpBdd(string mail); bool EmailDisponible(string mail);
int CalculTotalSoldeComtpe(Inscrit user);
List<Banque> LoadBanqueId(int id);
public bool TestConnexionAsDatabase(); //actions sur les banques
public List<Banque> ImportBanques(); bool AjouterBanque(Banque banque);
public Inscrit GetInscrit(string mail); bool SupprimerBanque(Banque banque);
bool ModifierBanque(Banque banque);
public IList<Compte> GetCompteFromOFX(string ofx); 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