using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace GestionDeCommerceInfoClasseBDDNCouches.DataLayer { public class BDDAccesUtilisateur : BDDAccesBase { //private string sCHConnBDD; //public string SCHConnBDD { get => sCHConnBDD; set => sCHConnBDD = value; } //private SqlCommand CommandSQL = new SqlCommand(); public BDDAccesUtilisateur(string schConn) : base(schConn) { //SCHConnBDD = schConn; //CommandSQL.Connection = new SqlConnection(schConn); } public List ListUtilisateurs(Utilisateur.Tri_E tri) { CommandSQL.Parameters.Clear(); List lstArt = new List(); CommandSQL.CommandType = System.Data.CommandType.StoredProcedure; CommandSQL.CommandText = "ListUtilisateurs"; CommandSQL.Parameters.AddWithValue("@ID", Convert.DBNull); if(tri == Utilisateur.Tri_E.NONE) CommandSQL.Parameters.AddWithValue("@TRI", Convert.DBNull); else CommandSQL.Parameters.AddWithValue("@TRI", tri.ToString()); CommandSQL.Connection.Open(); SqlDataReader data = CommandSQL.ExecuteReader(); while (data.Read()) { //Console.WriteLine(data.ToString()+"\n"+ (data["ID"].ToString()) +"__"+ (data["PrixHTVA"].ToString())+"__"+(data["Stock"].ToString())+"__"+ ((data["Visible"].ToString()))+"__"+ ((data["Actif"].ToString()))); //public Utilisateur(int id, string nom, string pre, string addr, string nCompte, string email, Type_E type) lstArt.Add(new Utilisateur(int.Parse(data["ID"].ToString()), data["Nom"].ToString(), (data["Prenom"].ToString()), (data["Adresse"].ToString()), (data["NCompte"].ToString()), (data["email"].ToString()), (Utilisateur.Type_E)Enum.Parse(typeof(Utilisateur.Type_E), data["type"].ToString()))); } CommandSQL.Connection.Close(); return lstArt; } public Utilisateur LireUtilisateur(int id) { CommandSQL.Parameters.Clear(); Utilisateur lstArt; CommandSQL.CommandType = System.Data.CommandType.StoredProcedure; CommandSQL.CommandText = "ListUtilisateurs"; CommandSQL.Parameters.AddWithValue("@ID", id); CommandSQL.Parameters.AddWithValue("@TRI", Convert.DBNull); CommandSQL.Connection.Open(); SqlDataReader data = CommandSQL.ExecuteReader(); if (data.Read()) { //Console.WriteLine(data.ToString()+"\n"+ (data["ID"].ToString()) +"__"+ (data["PrixHTVA"].ToString())+"__"+(data["Stock"].ToString())+"__"+ ((data["Visible"].ToString()))+"__"+ ((data["Actif"].ToString()))); lstArt = new Utilisateur(int.Parse(data["ID"].ToString()), data["Nom"].ToString(), (data["Prenom"].ToString()), (data["Adresse"].ToString()), (data["NCompte"].ToString()), (data["email"].ToString()), (Utilisateur.Type_E)Enum.Parse(typeof(Utilisateur.Type_E), data["type"].ToString())); CommandSQL.Connection.Close(); return lstArt; } else { CommandSQL.Connection.Close(); return null; } } public int AjouterUtilisateur(Utilisateur utilisateur) { CommandSQL.Parameters.Clear(); CommandSQL.CommandType = System.Data.CommandType.StoredProcedure; CommandSQL.CommandText = "AjoutUtilisateur"; CommandSQL.Parameters.Clear(); CommandSQL.Parameters.Add("ID", SqlDbType.Int); Direction("ID", ParameterDirection.Output); CommandSQL.Parameters.AddWithValue("@Nom", utilisateur.Nom); CommandSQL.Parameters.AddWithValue("@Prenom", utilisateur.Prenom); CommandSQL.Parameters.AddWithValue("@Adresse", utilisateur.Adresse); CommandSQL.Parameters.AddWithValue("@NCompte", utilisateur.NCompte); CommandSQL.Parameters.AddWithValue("@DateDeNaisance", (utilisateur.DateDeNaisance == null)? Convert.DBNull : utilisateur.DateDeNaisance.Value); CommandSQL.Parameters.AddWithValue("@email", utilisateur.Email); CommandSQL.Parameters.AddWithValue("@Type", (int)utilisateur.TypeUtilisateur); CommandSQL.Connection.Open(); SqlDataReader data = CommandSQL.ExecuteReader(); int a = int.Parse(CommandSQL.Parameters["ID"].Value.ToString()); utilisateur.ID = a; CommandSQL.Connection.Close(); return a; } public void AjouterUtilisateurs(List utilisateurs) { foreach (Utilisateur utilisateur in utilisateurs) AjouterUtilisateur(utilisateur); } public void ModifUtilisateur(Utilisateur utilisateur) { CommandSQL.Parameters.Clear(); CommandSQL.CommandType = System.Data.CommandType.StoredProcedure; CommandSQL.CommandText = "ModifUtilisateur"; CommandSQL.Parameters.AddWithValue("@ID", utilisateur.ID); CommandSQL.Parameters.AddWithValue("@Nom", utilisateur.Nom); CommandSQL.Parameters.AddWithValue("@Prenom", utilisateur.Prenom); CommandSQL.Parameters.AddWithValue("@Adresse", utilisateur.Adresse); CommandSQL.Parameters.AddWithValue("@NCompte", utilisateur.NCompte); CommandSQL.Parameters.AddWithValue("@DateDeNaisance", (utilisateur.DateDeNaisance == null) ? Convert.DBNull : utilisateur.DateDeNaisance.Value); CommandSQL.Parameters.AddWithValue("@email", utilisateur.Email); CommandSQL.Parameters.AddWithValue("@Type", ((int)utilisateur.TypeUtilisateur)); CommandSQL.Parameters.AddWithValue("@Actif", true); CommandSQL.Connection.Open(); SqlDataReader data = CommandSQL.ExecuteReader(); CommandSQL.Connection.Close(); } public void ModifUtilisateurs(List utilisateurs) { foreach (Utilisateur utilisateur in utilisateurs) ModifUtilisateur(utilisateur); } public void SuprimerUtilisateur(int id, bool definitivement) { CommandSQL.Parameters.Clear(); CommandSQL.CommandType = System.Data.CommandType.StoredProcedure; CommandSQL.CommandText = "SuprimerUtilisateur"; CommandSQL.Parameters.AddWithValue("@ID", id); CommandSQL.Parameters.AddWithValue("@definitivement", definitivement); CommandSQL.Connection.Open(); SqlDataReader data = CommandSQL.ExecuteReader(); CommandSQL.Connection.Close(); } public void SuprimerUtilisateur(Utilisateur utilisateur, bool definitivement) { SuprimerUtilisateur(utilisateur.ID, definitivement); } public void SuprimerUtilisateur(List utilisateurs, bool definitivement) { foreach (Utilisateur utilisateur in utilisateurs) SuprimerUtilisateur(utilisateur.ID, definitivement); } } }