1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
|
using Entite;
using Repository.Interface;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Dapper;
namespace Repository
{/// <summary>
/// cette classe permet l'ajout, la suppression, la mise à jour et la sélection des auteurs
/// </summary>
public class RepositoryAuteur: IRepositoryAuteur
{
/// <summary>
/// Ce constructeur teste la chaîne de connexion
/// </summary>
public RepositoryAuteur()
{
try
{
using (SqlConnection connection = Connexion.getInstance().SqlConnection)
{
connection.Open();
}
}
catch (Exception ex)
{
Console.Write("Une erreur s'est produite pendant la connexion à la base de données " + ex.Message);
}//fin de catch
}//fin de méthode RepositoryAuteur()
/// <summary>
/// Cette Méthode prend en paramètre un auteur et l'ajoute en BDD
/// </summary>
/// <param name="o"></param>
public void Add(Auteur o)
{
using (SqlConnection connection = Connexion.getInstance().SqlConnection)
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = "INSERT INTO AUTEUR(nom_auteur,prenom_auteur,date_naiss_auteur)VALUES (@nom_aut,@prenom_aut,@date_naiss_aut)";
command.Parameters.AddWithValue("@nom_aut", o.Name);
command.Parameters.AddWithValue("@prenom_aut", o.Surname);
command.Parameters.AddWithValue("@date_naiss_aut", o.DateOfBirthday);
connection.Open();
command.ExecuteNonQuery();
}//fin de using
}//fin de Add
/// <summary>
/// méthode de suppression d'un auteur passé en paramètre
/// </summary>
/// <param name="o"></param>
public void Delete(Auteur o)
{
using (SqlConnection connection = Connexion.getInstance().SqlConnection)
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = "DELETE FROM AUTEUR WHERE prenom_auteur=@prenom_aut AND nom_auteur = @nom_aut AND date_naiss_auteur = @date_naiss_aut";
command.Parameters.AddWithValue("@prenom_aut", o.Surname);
command.Parameters.AddWithValue("@nom_aut", o.Name);
command.Parameters.AddWithValue("@date_naiss_aut", o.DateOfBirthday);
connection.Open();
command.ExecuteNonQuery();
}
}
/// <summary>
/// méthode de récupération de tous les auteurs
/// </summary>
/// <returns>une liste d'auteurs</returns>
public List<Auteur> GetAll()
{
List<Auteur> auteurs = new List<Auteur>();
using (SqlConnection connection = Connexion.getInstance().SqlConnection)
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = "SELECT Id_auteur,nom_auteur,prenom_auteur,date_naiss_auteur FROM AUTEUR";
connection.Open();
var reader = command.ExecuteReader();
while (reader.Read())
{
Auteur auteur = new Auteur()
{
Id_auteur =(int)reader["Id_auteur"],
Name = reader["nom_auteur"] as string,
Surname = reader["prenom_auteur"] as string,
DateOfBirthday = (DateTime)reader["date_naiss_auteur"]
};
auteurs.Add(auteur);
}
return auteurs;
}
}
/// <summary>
/// recupération d'un auteur selon son Id
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public List<Auteur> GetById(int id)
{
using (SqlConnection connection = Connexion.getInstance().SqlConnection)
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = "SELECT Id_auteur,nom_auteur,prenom_auteur,date_naiss_auteur FROM AUTEUR WHERE Id_auteur=@Id";
command.Parameters.AddWithValue("@Id", id);
connection.Open();
var reader = command.ExecuteReader();
if (reader.Read())
{
Auteur auteur = new Auteur()
{
Id_auteur =(int) reader["Id_auteur"] ,
Name = reader["nom_auteur"] as string,
Surname = reader["prenom_auteur"] as string,
DateOfBirthday = (DateTime)reader["date_naiss_auteur"]
};//fin d'initialisation d'un auteur
List<Auteur> auteur_recupere = new List<Auteur>();
auteur_recupere.Add(auteur);
return auteur_recupere;
}//fin de if
else
{
return null;
}//fin de else
}//fin de using
}//fin de GetById
/// <summary>
/// Sélectionne un auteur par son nom et prénom
/// </summary>
/// <param name="prenom"></param>
/// <param name="nom"></param>
/// <returns>un auteur</returns>
public Auteur getByNameAndSurname(string prenom, string nom, DateTime? DateDeNaissance)
{
using (SqlConnection connection = Connexion.getInstance().SqlConnection)
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = "SELECT Id_auteur,nom_auteur,prenom_auteur,date_naiss_auteur FROM AUTEUR WHERE prenom_auteur=@Prenom_aut AND nom_auteur = @Nom_aut AND date_naiss_auteur = @DateNaiss_aut";
command.Parameters.AddWithValue("@Nom_aut", nom);
command.Parameters.AddWithValue("@Prenom_aut", prenom);
command.Parameters.AddWithValue("@DateNaiss_aut", DateDeNaissance);
connection.Open();
var reader = command.ExecuteReader();
reader.Read();
Auteur auteur = new Auteur()
{
Name = reader["nom_auteur"] as string,
Surname = reader["prenom_auteur"] as string,
DateOfBirthday = (DateTime)reader["date_naiss_auteur"]
};
return auteur;
}
}
/// <summary>
/// récupération de l' auteur d'un livre passé en paramètre
/// </summary>
/// <param name="l"></param>
/// <returns>un auteur</returns>
public Auteur RecupParLivre(Livre l)
{
using (SqlConnection connection = Connexion.getInstance().SqlConnection)
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = "SELECT Id_auteur,nom_auteur,prenom_auteur,date_naiss_auteur FROM AUTEUR INNER JOIN LIVRE ON LIVRE.Auteur = AUTEUR.IdAuteur WHERE Id_livre = @IdLivre";
command.Parameters.AddWithValue("@IdLivre", l.Id_livre);
connection.Open();
var reader = command.ExecuteReader();
reader.Read();
Auteur auteur = new Auteur()
{
Id_auteur = (int)reader["Id_auteur"] ,
Name = reader["nom_auteur"] as string,
Surname = reader["prenom_auteur"] as string,
DateOfBirthday = (DateTime)reader["date_naiss_auteur"]
};
return auteur;
}
}
public void Update(Auteur A)
{
using (SqlConnection connection = Connexion.getInstance().SqlConnection)
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = "UPDATE AUTEUR SET nom_auteur=@Nom_aut, prenom_auteur=@Prenom_aut,date_naiss_auteur=@DateNaiss_aut WHERE Id_auteur=@Id";
command.Parameters.AddWithValue("@Nom_aut", A.Name);
command.Parameters.AddWithValue("@Prenom_aut", A.Surname);
command.Parameters.AddWithValue("@DateNaiss_aut", A.DateOfBirthday);
command.Parameters.AddWithValue("@Id", A.Id_auteur);
connection.Open();
command.ExecuteNonQuery();
}
}
}
} |
Partager