From 63ac321e2f7dff89ffcf24c9ff27aff40ef4e228 Mon Sep 17 00:00:00 2001 From: adri Date: Fri, 18 Jan 2019 13:08:55 +0100 Subject: [PATCH] ini --- ProjetTheAlone/App.xaml | 2 +- .../Converter/BinaryImageConverter.cs | 44 +++++++ ProjetTheAlone/MainWindow.xaml | 4 +- ProjetTheAlone/MainWindow.xaml.cs | 3 +- ProjetTheAlone/Model/A_Base.cs | 86 +++++++++++++ ProjetTheAlone/Model/A_T_beneficiaire.cs | 112 +++++++++++++++++ ProjetTheAlone/Model/A_T_equipe.cs | 106 ++++++++++++++++ ProjetTheAlone/Model/A_T_event.cs | 118 ++++++++++++++++++ ProjetTheAlone/Model/A_T_lieu.cs | 94 ++++++++++++++ ProjetTheAlone/Model/A_T_listParticipant.cs | 100 +++++++++++++++ ProjetTheAlone/Model/A_T_listPlat.cs | 96 ++++++++++++++ ProjetTheAlone/Model/A_T_plat.cs | 106 ++++++++++++++++ ProjetTheAlone/Model/A_T_repa.cs | 100 +++++++++++++++ ProjetTheAlone/Model/A_T_typeEvenement.cs | 96 ++++++++++++++ ProjetTheAlone/Model/A_T_typePlat.cs | 94 ++++++++++++++ ProjetTheAlone/Model/A_T_typeRepa.cs | 94 ++++++++++++++ ProjetTheAlone/Model/C_T_beneficiaire.cs | 65 ++++++++++ ProjetTheAlone/Model/C_T_equipe.cs | 58 +++++++++ ProjetTheAlone/Model/C_T_event.cs | 67 ++++++++++ ProjetTheAlone/Model/C_T_lieu.cs | 44 +++++++ ProjetTheAlone/Model/C_T_listParticipant.cs | 51 ++++++++ ProjetTheAlone/Model/C_T_listPlat.cs | 51 ++++++++ ProjetTheAlone/Model/C_T_plat.cs | 58 +++++++++ ProjetTheAlone/Model/C_T_repa.cs | 51 ++++++++ ProjetTheAlone/Model/C_T_typeEvenement.cs | 44 +++++++ ProjetTheAlone/Model/C_T_typePlat.cs | 44 +++++++ ProjetTheAlone/Model/C_T_typeRepa.cs | 44 +++++++ ProjetTheAlone/Model/EventPasseModel.cs | 32 +++++ ProjetTheAlone/Model/G_Base.cs | 28 +++++ ProjetTheAlone/Model/G_T_beneficiaire.cs | 35 ++++++ ProjetTheAlone/Model/G_T_equipe.cs | 35 ++++++ ProjetTheAlone/Model/G_T_event.cs | 35 ++++++ ProjetTheAlone/Model/G_T_lieu.cs | 35 ++++++ ProjetTheAlone/Model/G_T_listParticipant.cs | 35 ++++++ ProjetTheAlone/Model/G_T_listPlat.cs | 35 ++++++ ProjetTheAlone/Model/G_T_plat.cs | 35 ++++++ ProjetTheAlone/Model/G_T_repa.cs | 35 ++++++ ProjetTheAlone/Model/G_T_typeEvenement.cs | 35 ++++++ ProjetTheAlone/Model/G_T_typePlat.cs | 35 ++++++ ProjetTheAlone/Model/G_T_typeRepa.cs | 35 ++++++ ProjetTheAlone/Model/P_T_beneficiaire.sql | 56 +++++++++ ProjetTheAlone/Model/P_T_equipe.sql | 53 ++++++++ ProjetTheAlone/Model/P_T_event.sql | 59 +++++++++ ProjetTheAlone/Model/P_T_lieu.sql | 47 +++++++ ProjetTheAlone/Model/P_T_listParticipant.sql | 50 ++++++++ ProjetTheAlone/Model/P_T_listPlat.sql | 50 ++++++++ ProjetTheAlone/Model/P_T_plat.sql | 53 ++++++++ ProjetTheAlone/Model/P_T_repa.sql | 50 ++++++++ ProjetTheAlone/Model/P_T_typeEvenement.sql | 47 +++++++ ProjetTheAlone/Model/P_T_typePlat.sql | 48 +++++++ ProjetTheAlone/Model/P_T_typeRepa.sql | 47 +++++++ ProjetTheAlone/Model/RepaModel.cs | 32 +++++ ProjetTheAlone/ProjetTheAlone.csproj | 80 ++++++++++++ ProjetTheAlone/UserControlDIY/EventFutur.xaml | 24 ++++ .../UserControlDIY/EventFutur.xaml.cs | 28 +++++ ProjetTheAlone/UserControlDIY/EventPasse.xaml | 38 ++++++ .../UserControlDIY/EventPasse.xaml.cs | 60 +++++++++ ProjetTheAlone/UserControlDIY/Plat.xaml | 33 +++++ ProjetTheAlone/UserControlDIY/Plat.xaml.cs | 34 +++++ ProjetTheAlone/UserControlDIY/Repa.xaml | 34 +++++ ProjetTheAlone/UserControlDIY/Repa.xaml.cs | 40 ++++++ ProjetTheAlone/View/DashBoard.xaml | 86 +++++++++++++ ProjetTheAlone/View/DashBoard.xaml.cs | 92 ++++++++++++++ ProjetTheAlone/ViewModel/Base.cs | 37 ++++++ ProjetTheAlone/img/desert.jpg | Bin 0 -> 13505 bytes ProjetTheAlone/img/entree.jpeg | Bin 0 -> 12868 bytes ProjetTheAlone/img/plat.jpg | Bin 0 -> 23302 bytes 67 files changed, 3449 insertions(+), 6 deletions(-) create mode 100644 ProjetTheAlone/Converter/BinaryImageConverter.cs create mode 100644 ProjetTheAlone/Model/A_Base.cs create mode 100644 ProjetTheAlone/Model/A_T_beneficiaire.cs create mode 100644 ProjetTheAlone/Model/A_T_equipe.cs create mode 100644 ProjetTheAlone/Model/A_T_event.cs create mode 100644 ProjetTheAlone/Model/A_T_lieu.cs create mode 100644 ProjetTheAlone/Model/A_T_listParticipant.cs create mode 100644 ProjetTheAlone/Model/A_T_listPlat.cs create mode 100644 ProjetTheAlone/Model/A_T_plat.cs create mode 100644 ProjetTheAlone/Model/A_T_repa.cs create mode 100644 ProjetTheAlone/Model/A_T_typeEvenement.cs create mode 100644 ProjetTheAlone/Model/A_T_typePlat.cs create mode 100644 ProjetTheAlone/Model/A_T_typeRepa.cs create mode 100644 ProjetTheAlone/Model/C_T_beneficiaire.cs create mode 100644 ProjetTheAlone/Model/C_T_equipe.cs create mode 100644 ProjetTheAlone/Model/C_T_event.cs create mode 100644 ProjetTheAlone/Model/C_T_lieu.cs create mode 100644 ProjetTheAlone/Model/C_T_listParticipant.cs create mode 100644 ProjetTheAlone/Model/C_T_listPlat.cs create mode 100644 ProjetTheAlone/Model/C_T_plat.cs create mode 100644 ProjetTheAlone/Model/C_T_repa.cs create mode 100644 ProjetTheAlone/Model/C_T_typeEvenement.cs create mode 100644 ProjetTheAlone/Model/C_T_typePlat.cs create mode 100644 ProjetTheAlone/Model/C_T_typeRepa.cs create mode 100644 ProjetTheAlone/Model/EventPasseModel.cs create mode 100644 ProjetTheAlone/Model/G_Base.cs create mode 100644 ProjetTheAlone/Model/G_T_beneficiaire.cs create mode 100644 ProjetTheAlone/Model/G_T_equipe.cs create mode 100644 ProjetTheAlone/Model/G_T_event.cs create mode 100644 ProjetTheAlone/Model/G_T_lieu.cs create mode 100644 ProjetTheAlone/Model/G_T_listParticipant.cs create mode 100644 ProjetTheAlone/Model/G_T_listPlat.cs create mode 100644 ProjetTheAlone/Model/G_T_plat.cs create mode 100644 ProjetTheAlone/Model/G_T_repa.cs create mode 100644 ProjetTheAlone/Model/G_T_typeEvenement.cs create mode 100644 ProjetTheAlone/Model/G_T_typePlat.cs create mode 100644 ProjetTheAlone/Model/G_T_typeRepa.cs create mode 100644 ProjetTheAlone/Model/P_T_beneficiaire.sql create mode 100644 ProjetTheAlone/Model/P_T_equipe.sql create mode 100644 ProjetTheAlone/Model/P_T_event.sql create mode 100644 ProjetTheAlone/Model/P_T_lieu.sql create mode 100644 ProjetTheAlone/Model/P_T_listParticipant.sql create mode 100644 ProjetTheAlone/Model/P_T_listPlat.sql create mode 100644 ProjetTheAlone/Model/P_T_plat.sql create mode 100644 ProjetTheAlone/Model/P_T_repa.sql create mode 100644 ProjetTheAlone/Model/P_T_typeEvenement.sql create mode 100644 ProjetTheAlone/Model/P_T_typePlat.sql create mode 100644 ProjetTheAlone/Model/P_T_typeRepa.sql create mode 100644 ProjetTheAlone/Model/RepaModel.cs create mode 100644 ProjetTheAlone/UserControlDIY/EventFutur.xaml create mode 100644 ProjetTheAlone/UserControlDIY/EventFutur.xaml.cs create mode 100644 ProjetTheAlone/UserControlDIY/EventPasse.xaml create mode 100644 ProjetTheAlone/UserControlDIY/EventPasse.xaml.cs create mode 100644 ProjetTheAlone/UserControlDIY/Plat.xaml create mode 100644 ProjetTheAlone/UserControlDIY/Plat.xaml.cs create mode 100644 ProjetTheAlone/UserControlDIY/Repa.xaml create mode 100644 ProjetTheAlone/UserControlDIY/Repa.xaml.cs create mode 100644 ProjetTheAlone/View/DashBoard.xaml create mode 100644 ProjetTheAlone/View/DashBoard.xaml.cs create mode 100644 ProjetTheAlone/ViewModel/Base.cs create mode 100644 ProjetTheAlone/img/desert.jpg create mode 100644 ProjetTheAlone/img/entree.jpeg create mode 100644 ProjetTheAlone/img/plat.jpg diff --git a/ProjetTheAlone/App.xaml b/ProjetTheAlone/App.xaml index d655dbc..d66f507 100644 --- a/ProjetTheAlone/App.xaml +++ b/ProjetTheAlone/App.xaml @@ -2,7 +2,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:ProjetTheAlone" - StartupUri="MainWindow.xaml"> + StartupUri="/View/DashBoard.xaml"> diff --git a/ProjetTheAlone/Converter/BinaryImageConverter.cs b/ProjetTheAlone/Converter/BinaryImageConverter.cs new file mode 100644 index 0000000..77dd5c3 --- /dev/null +++ b/ProjetTheAlone/Converter/BinaryImageConverter.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; +using System.Windows.Media.Imaging; +//https://cromwellhaus.com/2007/07/binding-to-the-byte-of-an-image-in-wpf/ +namespace ProjetTheAlone.Converter +{ + public class BinaryImageConverter : IValueConverter + { + object IValueConverter.Convert(object value, + Type targetType, + object parameter, + System.Globalization.CultureInfo culture) + { + if (value != null && value is byte[]) + { + byte[] bytes = value as byte[]; + + MemoryStream stream = new MemoryStream(bytes); + + BitmapImage image = new BitmapImage(); + image.BeginInit(); + image.StreamSource = stream; + image.EndInit(); + + return image; + } + + return null; + } + + object IValueConverter.ConvertBack(object value, + Type targetType, + object parameter, + System.Globalization.CultureInfo culture) + { + throw new Exception("The method or operation is not implemented."); + } + } +} diff --git a/ProjetTheAlone/MainWindow.xaml b/ProjetTheAlone/MainWindow.xaml index aede272..cc9e04b 100644 --- a/ProjetTheAlone/MainWindow.xaml +++ b/ProjetTheAlone/MainWindow.xaml @@ -15,8 +15,6 @@ Background="{DynamicResource MaterialDesignPaper}" FontFamily="{DynamicResource MaterialDesignFont}"> - - My First Material Design App - + diff --git a/ProjetTheAlone/MainWindow.xaml.cs b/ProjetTheAlone/MainWindow.xaml.cs index cf3a091..b67276a 100644 --- a/ProjetTheAlone/MainWindow.xaml.cs +++ b/ProjetTheAlone/MainWindow.xaml.cs @@ -12,14 +12,13 @@ using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; -using MahApps.Metro.Controls; namespace ProjetTheAlone { /// /// Interaction logic for MainWindow.xaml /// - public partial class MainWindow : MetroWindow + public partial class MainWindow : Window { public MainWindow() { diff --git a/ProjetTheAlone/Model/A_Base.cs b/ProjetTheAlone/Model/A_Base.cs new file mode 100644 index 0000000..815be28 --- /dev/null +++ b/ProjetTheAlone/Model/A_Base.cs @@ -0,0 +1,86 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Configuration; +#endregion + +namespace ProjetTheAlone.Acces +{ + public class ADBase + { + #region Données membres + protected SqlCommand _commande; + #endregion + #region Constructeurs (étendus) + /// + /// Constructeur par défaut + /// + /// La chaîne de connexion est récupérée en argument + public ADBase(string sChaineConnexion) + { + _commande = new SqlCommand(); + _commande.Connection = new SqlConnection(sChaineConnexion); + } + /// + /// Méthode assignant une procédure stockée + /// + /// Nom de la procédure stockée + public void CreerCommande(string sCommande) + { + _commande.CommandType = CommandType.StoredProcedure; + _commande.CommandText = sCommande; + } + /// + /// Méthode assignant une procédure stockée ET une chaîne de connexion + /// + /// Nom de la procédure stockée + /// Chaîne de connexion à utiliser + public void CreerCommande(string sCommande, string sConnexion) + { + _commande.Connection = new SqlConnection(sConnexion); + _commande.CommandType = CommandType.StoredProcedure; + _commande.CommandText = sCommande; + } + /// + /// Méthode assignant une procédure stockée et le type de requête + /// + /// Nom de la procédure stockée + /// Type de requête (Vrai=stockée, Faux=Texte) + public void CreerCommande(string sCommande, bool bTypeRequete) + { + if (bTypeRequete) _commande.CommandType = CommandType.StoredProcedure; + else _commande.CommandType = CommandType.Text; + _commande.CommandText = sCommande; + } + /// + /// Méthode assignant une procédure stockée, une chaîne de connexion et le type de requête + /// + /// Nom de la procédure stockée + /// Chaîne de connexion à utiliser + /// Type de requête (Vrai=stockée, Faux=Texte) + public void CreerCommande(string sCommande, bool bTypeRequete, string sConnexion) + { + _commande.Connection = new SqlConnection(sConnexion); + if (bTypeRequete) _commande.CommandType = CommandType.StoredProcedure; + else _commande.CommandType = CommandType.Text; + _commande.CommandText = sCommande; + } + #endregion + #region Accesseurs + public SqlCommand Commande + { + get { return _commande; } + set { _commande = value; } + } + #endregion + #region Utilitaires + public void Direction(string sParam, ParameterDirection dParam) + { Commande.Parameters[sParam].Direction = dParam; } + public string LireParametre(string sParam) + { return Commande.Parameters[sParam].Value.ToString(); } + #endregion + } +} diff --git a/ProjetTheAlone/Model/A_T_beneficiaire.cs b/ProjetTheAlone/Model/A_T_beneficiaire.cs new file mode 100644 index 0000000..51287e2 --- /dev/null +++ b/ProjetTheAlone/Model/A_T_beneficiaire.cs @@ -0,0 +1,112 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Data.SqlTypes; +using ProjetTheAlone.Classes; +#endregion + +namespace ProjetTheAlone.Acces +{ + /// + /// Couche d'accès aux données (Data Access Layer) + /// + public class A_T_beneficiaire : ADBase + { + #region Constructeurs + public A_T_beneficiaire(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(string B_nom, string B_prenom, DateTime? B_anniversaire, string B_img) + { + CreerCommande("AjouterT_beneficiaire"); + int res = 0; + Commande.Parameters.Add("ID_beneficiaire", SqlDbType.Int); + Direction("ID_beneficiaire", ParameterDirection.Output); + if(B_nom == null) Commande.Parameters.AddWithValue("@B_nom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@B_nom", B_nom); + if(B_prenom == null) Commande.Parameters.AddWithValue("@B_prenom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@B_prenom", B_prenom); + if(B_anniversaire == null) Commande.Parameters.AddWithValue("@B_anniversaire", Convert.DBNull); + else Commande.Parameters.AddWithValue("@B_anniversaire", B_anniversaire); + if(B_img == null) Commande.Parameters.AddWithValue("@B_img", Convert.DBNull); + else Commande.Parameters.AddWithValue("@B_img", B_img); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + res = int.Parse(LireParametre("ID_beneficiaire")); + Commande.Connection.Close(); + return res; + } + public int Modifier(int ID_beneficiaire, string B_nom, string B_prenom, DateTime? B_anniversaire, string B_img) + { + CreerCommande("ModifierT_beneficiaire"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_beneficiaire", ID_beneficiaire); + if(B_nom == null) Commande.Parameters.AddWithValue("@B_nom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@B_nom", B_nom); + if(B_prenom == null) Commande.Parameters.AddWithValue("@B_prenom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@B_prenom", B_prenom); + if(B_anniversaire == null) Commande.Parameters.AddWithValue("@B_anniversaire", Convert.DBNull); + else Commande.Parameters.AddWithValue("@B_anniversaire", B_anniversaire); + if(B_img == null) Commande.Parameters.AddWithValue("@B_img", Convert.DBNull); + else Commande.Parameters.AddWithValue("@B_img", B_img); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + public List Lire(string Index) + { + CreerCommande("SelectionnerT_beneficiaire"); + Commande.Parameters.AddWithValue("@Index", Index); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + List res = new List(); + while (dr.Read()) + { + C_T_beneficiaire tmp = new C_T_beneficiaire(); + tmp.ID_beneficiaire = int.Parse(dr["ID_beneficiaire"].ToString()); + tmp.B_nom = dr["B_nom"].ToString(); + tmp.B_prenom = dr["B_prenom"].ToString(); + if(dr["B_anniversaire"] != DBNull.Value) tmp.B_anniversaire = DateTime.Parse(dr["B_anniversaire"].ToString()); + tmp.B_img = dr["B_img"].ToString(); + res.Add(tmp); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public C_T_beneficiaire Lire_ID(int ID_beneficiaire) + { + CreerCommande("SelectionnerT_beneficiaire_ID"); + Commande.Parameters.AddWithValue("@ID_beneficiaire", ID_beneficiaire); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + C_T_beneficiaire res = new C_T_beneficiaire(); + while (dr.Read()) + { + res.ID_beneficiaire = int.Parse(dr["ID_beneficiaire"].ToString()); + res.B_nom = dr["B_nom"].ToString(); + res.B_prenom = dr["B_prenom"].ToString(); + if(dr["B_anniversaire"] != DBNull.Value) res.B_anniversaire = DateTime.Parse(dr["B_anniversaire"].ToString()); + res.B_img = dr["B_img"].ToString(); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public int Supprimer(int ID_beneficiaire) + { + CreerCommande("SupprimerT_beneficiaire"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_beneficiaire", ID_beneficiaire); + Commande.Connection.Open(); + res = Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + } +} diff --git a/ProjetTheAlone/Model/A_T_equipe.cs b/ProjetTheAlone/Model/A_T_equipe.cs new file mode 100644 index 0000000..be0afb7 --- /dev/null +++ b/ProjetTheAlone/Model/A_T_equipe.cs @@ -0,0 +1,106 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Data.SqlTypes; +using ProjetTheAlone.Classes; +#endregion + +namespace ProjetTheAlone.Acces +{ + /// + /// Couche d'accès aux données (Data Access Layer) + /// + public class A_T_equipe : ADBase + { + #region Constructeurs + public A_T_equipe(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(string E_nom, string E_point, int? ID_evenement) + { + CreerCommande("AjouterT_equipe"); + int res = 0; + Commande.Parameters.Add("ID_equipe", SqlDbType.Int); + Direction("ID_equipe", ParameterDirection.Output); + if(E_nom == null) Commande.Parameters.AddWithValue("@E_nom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@E_nom", E_nom); + if(E_point == null) Commande.Parameters.AddWithValue("@E_point", Convert.DBNull); + else Commande.Parameters.AddWithValue("@E_point", E_point); + if(ID_evenement == null) Commande.Parameters.AddWithValue("@ID_evenement", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_evenement", ID_evenement); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + res = int.Parse(LireParametre("ID_equipe")); + Commande.Connection.Close(); + return res; + } + public int Modifier(int ID_equipe, string E_nom, string E_point, int? ID_evenement) + { + CreerCommande("ModifierT_equipe"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_equipe", ID_equipe); + if(E_nom == null) Commande.Parameters.AddWithValue("@E_nom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@E_nom", E_nom); + if(E_point == null) Commande.Parameters.AddWithValue("@E_point", Convert.DBNull); + else Commande.Parameters.AddWithValue("@E_point", E_point); + if(ID_evenement == null) Commande.Parameters.AddWithValue("@ID_evenement", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_evenement", ID_evenement); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + public List Lire(string Index) + { + CreerCommande("SelectionnerT_equipe"); + Commande.Parameters.AddWithValue("@Index", Index); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + List res = new List(); + while (dr.Read()) + { + C_T_equipe tmp = new C_T_equipe(); + tmp.ID_equipe = int.Parse(dr["ID_equipe"].ToString()); + tmp.E_nom = dr["E_nom"].ToString(); + tmp.E_point = dr["E_point"].ToString(); + if(dr["ID_evenement"] != DBNull.Value) tmp.ID_evenement = int.Parse(dr["ID_evenement"].ToString()); + res.Add(tmp); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public C_T_equipe Lire_ID(int ID_equipe) + { + CreerCommande("SelectionnerT_equipe_ID"); + Commande.Parameters.AddWithValue("@ID_equipe", ID_equipe); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + C_T_equipe res = new C_T_equipe(); + while (dr.Read()) + { + res.ID_equipe = int.Parse(dr["ID_equipe"].ToString()); + res.E_nom = dr["E_nom"].ToString(); + res.E_point = dr["E_point"].ToString(); + if(dr["ID_evenement"] != DBNull.Value) res.ID_evenement = int.Parse(dr["ID_evenement"].ToString()); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public int Supprimer(int ID_equipe) + { + CreerCommande("SupprimerT_equipe"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_equipe", ID_equipe); + Commande.Connection.Open(); + res = Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + } +} diff --git a/ProjetTheAlone/Model/A_T_event.cs b/ProjetTheAlone/Model/A_T_event.cs new file mode 100644 index 0000000..df6d392 --- /dev/null +++ b/ProjetTheAlone/Model/A_T_event.cs @@ -0,0 +1,118 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Data.SqlTypes; +using ProjetTheAlone.Classes; +#endregion + +namespace ProjetTheAlone.Acces +{ + /// + /// Couche d'accès aux données (Data Access Layer) + /// + public class A_T_event : ADBase + { + #region Constructeurs + public A_T_event(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(DateTime? E_date, DateTime? E_duree, int? ID_typeEvenement,string E_description, int? ID_lieu) + { + CreerCommande("AjouterT_event"); + int res = 0; + Commande.Parameters.Add("ID_event", SqlDbType.Int); + Direction("ID_event", ParameterDirection.Output); + if(E_date == null) Commande.Parameters.AddWithValue("@E_date", Convert.DBNull); + else Commande.Parameters.AddWithValue("@E_date", E_date); + if(E_duree == null) Commande.Parameters.AddWithValue("@E_duree", Convert.DBNull); + else Commande.Parameters.AddWithValue("@E_duree", E_duree); + if(ID_typeEvenement == null) Commande.Parameters.AddWithValue("@ID_typeEvenement", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_typeEvenement", ID_typeEvenement); + if(E_description == null) Commande.Parameters.AddWithValue("@E_description", Convert.DBNull); + else Commande.Parameters.AddWithValue("@E_description", E_description); + if(ID_lieu == null) Commande.Parameters.AddWithValue("@ID_lieu", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_lieu", ID_lieu); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + res = int.Parse(LireParametre("ID_event")); + Commande.Connection.Close(); + return res; + } + public int Modifier(int ID_event, DateTime? E_date, DateTime? E_duree, int? ID_typeEvenement, string E_description, int? ID_lieu) + { + CreerCommande("ModifierT_event"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_event", ID_event); + if(E_date == null) Commande.Parameters.AddWithValue("@E_date", Convert.DBNull); + else Commande.Parameters.AddWithValue("@E_date", E_date); + if(E_duree == null) Commande.Parameters.AddWithValue("@E_duree", Convert.DBNull); + else Commande.Parameters.AddWithValue("@E_duree", E_duree); + if(ID_typeEvenement == null) Commande.Parameters.AddWithValue("@ID_typeEvenement", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_typeEvenement", ID_typeEvenement); + if(E_description == null) Commande.Parameters.AddWithValue("@E_description", Convert.DBNull); + else Commande.Parameters.AddWithValue("@E_description", E_description); + if(ID_lieu == null) Commande.Parameters.AddWithValue("@ID_lieu", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_lieu", ID_lieu); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + public List Lire(string Index) + { + CreerCommande("SelectionnerT_event"); + Commande.Parameters.AddWithValue("@Index", Index); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + List res = new List(); + while (dr.Read()) + { + C_T_event tmp = new C_T_event(); + tmp.ID_event = int.Parse(dr["ID_event"].ToString()); + if(dr["E_date"] != DBNull.Value) tmp.E_date = DateTime.Parse(dr["E_date"].ToString()); + if(dr["E_duree"] != DBNull.Value) tmp.E_duree = DateTime.Parse(dr["E_duree"].ToString()); + if(dr["ID_typeEvenement"] != DBNull.Value) tmp.ID_typeEvenement = int.Parse(dr["ID_typeEvenement"].ToString()); + if(dr["E_description"] != DBNull.Value) tmp.E_description = (dr["E_description"].ToString()); + if(dr["ID_lieu"] != DBNull.Value) tmp.ID_lieu = int.Parse(dr["ID_lieu"].ToString()); + res.Add(tmp); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public C_T_event Lire_ID(int ID_event) + { + CreerCommande("SelectionnerT_event_ID"); + Commande.Parameters.AddWithValue("@ID_event", ID_event); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + C_T_event res = new C_T_event(); + while (dr.Read()) + { + res.ID_event = int.Parse(dr["ID_event"].ToString()); + if(dr["E_date"] != DBNull.Value) res.E_date = DateTime.Parse(dr["E_date"].ToString()); + if(dr["E_duree"] != DBNull.Value) res.E_duree = DateTime.Parse(dr["E_duree"].ToString()); + if(dr["ID_typeEvenement"] != DBNull.Value) res.ID_typeEvenement = int.Parse(dr["ID_typeEvenement"].ToString()); + if(dr["E_description"] != DBNull.Value) res.E_description = (dr["E_description"].ToString()); + if(dr["ID_lieu"] != DBNull.Value) res.ID_lieu = int.Parse(dr["ID_lieu"].ToString()); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public int Supprimer(int ID_event) + { + CreerCommande("SupprimerT_event"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_event", ID_event); + Commande.Connection.Open(); + res = Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + } +} diff --git a/ProjetTheAlone/Model/A_T_lieu.cs b/ProjetTheAlone/Model/A_T_lieu.cs new file mode 100644 index 0000000..cd955f6 --- /dev/null +++ b/ProjetTheAlone/Model/A_T_lieu.cs @@ -0,0 +1,94 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Data.SqlTypes; +using ProjetTheAlone.Classes; +#endregion + +namespace ProjetTheAlone.Acces +{ + /// + /// Couche d'accès aux données (Data Access Layer) + /// + public class A_T_lieu : ADBase + { + #region Constructeurs + public A_T_lieu(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(string L_nom) + { + CreerCommande("AjouterT_lieu"); + int res = 0; + Commande.Parameters.Add("ID_lieu", SqlDbType.Int); + Direction("ID_lieu", ParameterDirection.Output); + if(L_nom == null) Commande.Parameters.AddWithValue("@L_nom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@L_nom", L_nom); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + res = int.Parse(LireParametre("ID_lieu")); + Commande.Connection.Close(); + return res; + } + public int Modifier(int ID_lieu, string L_nom) + { + CreerCommande("ModifierT_lieu"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_lieu", ID_lieu); + if(L_nom == null) Commande.Parameters.AddWithValue("@L_nom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@L_nom", L_nom); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + public List Lire(string Index) + { + CreerCommande("SelectionnerT_lieu"); + Commande.Parameters.AddWithValue("@Index", Index); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + List res = new List(); + while (dr.Read()) + { + C_T_lieu tmp = new C_T_lieu(); + tmp.ID_lieu = int.Parse(dr["ID_lieu"].ToString()); + if(dr["L_nom"] != DBNull.Value) tmp.L_nom = (dr["L_nom"].ToString()); + res.Add(tmp); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public C_T_lieu Lire_ID(int ID_lieu) + { + CreerCommande("SelectionnerT_lieu_ID"); + Commande.Parameters.AddWithValue("@ID_lieu", ID_lieu); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + C_T_lieu res = new C_T_lieu(); + while (dr.Read()) + { + res.ID_lieu = int.Parse(dr["ID_lieu"].ToString()); + if(dr["L_nom"] != DBNull.Value) res.L_nom = (dr["L_nom"].ToString()); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public int Supprimer(int ID_lieu) + { + CreerCommande("SupprimerT_lieu"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_lieu", ID_lieu); + Commande.Connection.Open(); + res = Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + } +} diff --git a/ProjetTheAlone/Model/A_T_listParticipant.cs b/ProjetTheAlone/Model/A_T_listParticipant.cs new file mode 100644 index 0000000..d959f4d --- /dev/null +++ b/ProjetTheAlone/Model/A_T_listParticipant.cs @@ -0,0 +1,100 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Data.SqlTypes; +using ProjetTheAlone.Classes; +#endregion + +namespace ProjetTheAlone.Acces +{ + /// + /// Couche d'accès aux données (Data Access Layer) + /// + public class A_T_listParticipant : ADBase + { + #region Constructeurs + public A_T_listParticipant(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(int? ID_equipe, int? ID_benificiaire) + { + CreerCommande("AjouterT_listParticipant"); + int res = 0; + Commande.Parameters.Add("ID_LP", SqlDbType.Int); + Direction("ID_LP", ParameterDirection.Output); + if(ID_equipe == null) Commande.Parameters.AddWithValue("@ID_equipe", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_equipe", ID_equipe); + if(ID_benificiaire == null) Commande.Parameters.AddWithValue("@ID_benificiaire", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_benificiaire", ID_benificiaire); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + res = int.Parse(LireParametre("ID_LP")); + Commande.Connection.Close(); + return res; + } + public int Modifier(int ID_LP, int? ID_equipe, int? ID_benificiaire) + { + CreerCommande("ModifierT_listParticipant"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_LP", ID_LP); + if(ID_equipe == null) Commande.Parameters.AddWithValue("@ID_equipe", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_equipe", ID_equipe); + if(ID_benificiaire == null) Commande.Parameters.AddWithValue("@ID_benificiaire", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_benificiaire", ID_benificiaire); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + public List Lire(string Index) + { + CreerCommande("SelectionnerT_listParticipant"); + Commande.Parameters.AddWithValue("@Index", Index); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + List res = new List(); + while (dr.Read()) + { + C_T_listParticipant tmp = new C_T_listParticipant(); + tmp.ID_LP = int.Parse(dr["ID_LP"].ToString()); + if(dr["ID_equipe"] != DBNull.Value) tmp.ID_equipe = int.Parse(dr["ID_equipe"].ToString()); + if(dr["ID_benificiaire"] != DBNull.Value) tmp.ID_benificiaire = int.Parse(dr["ID_benificiaire"].ToString()); + res.Add(tmp); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public C_T_listParticipant Lire_ID(int ID_LP) + { + CreerCommande("SelectionnerT_listParticipant_ID"); + Commande.Parameters.AddWithValue("@ID_LP", ID_LP); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + C_T_listParticipant res = new C_T_listParticipant(); + while (dr.Read()) + { + res.ID_LP = int.Parse(dr["ID_LP"].ToString()); + if(dr["ID_equipe"] != DBNull.Value) res.ID_equipe = int.Parse(dr["ID_equipe"].ToString()); + if(dr["ID_benificiaire"] != DBNull.Value) res.ID_benificiaire = int.Parse(dr["ID_benificiaire"].ToString()); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public int Supprimer(int ID_LP) + { + CreerCommande("SupprimerT_listParticipant"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_LP", ID_LP); + Commande.Connection.Open(); + res = Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + } +} diff --git a/ProjetTheAlone/Model/A_T_listPlat.cs b/ProjetTheAlone/Model/A_T_listPlat.cs new file mode 100644 index 0000000..539fba3 --- /dev/null +++ b/ProjetTheAlone/Model/A_T_listPlat.cs @@ -0,0 +1,96 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Data.SqlTypes; +using ProjetTheAlone.Classes; +#endregion + +namespace ProjetTheAlone.Acces +{ + /// + /// Couche d'accès aux données (Data Access Layer) + /// + public class A_T_listPlat : ADBase + { + #region Constructeurs + public A_T_listPlat(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(int ID_repa, int ID_plat) + { + CreerCommande("AjouterT_listPlat"); + int res = 0; + Commande.Parameters.Add("ID_listPlat", SqlDbType.Int); + Direction("ID_listPlat", ParameterDirection.Output); + Commande.Parameters.AddWithValue("@ID_repa", ID_repa); + Commande.Parameters.AddWithValue("@ID_plat", ID_plat); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + res = int.Parse(LireParametre("ID_listPlat")); + Commande.Connection.Close(); + return res; + } + public int Modifier(int ID_listPlat, int ID_repa, int ID_plat) + { + CreerCommande("ModifierT_listPlat"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_listPlat", ID_listPlat); + Commande.Parameters.AddWithValue("@ID_repa", ID_repa); + Commande.Parameters.AddWithValue("@ID_plat", ID_plat); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + public List Lire(string Index) + { + CreerCommande("SelectionnerT_listPlat"); + Commande.Parameters.AddWithValue("@Index", Index); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + List res = new List(); + while (dr.Read()) + { + C_T_listPlat tmp = new C_T_listPlat(); + tmp.ID_listPlat = int.Parse(dr["ID_listPlat"].ToString()); + tmp.ID_repa = int.Parse(dr["ID_repa"].ToString()); + tmp.ID_plat = int.Parse(dr["ID_plat"].ToString()); + res.Add(tmp); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public C_T_listPlat Lire_ID(int ID_listPlat) + { + CreerCommande("SelectionnerT_listPlat_ID"); + Commande.Parameters.AddWithValue("@ID_listPlat", ID_listPlat); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + C_T_listPlat res = new C_T_listPlat(); + while (dr.Read()) + { + res.ID_listPlat = int.Parse(dr["ID_listPlat"].ToString()); + res.ID_repa = int.Parse(dr["ID_repa"].ToString()); + res.ID_plat = int.Parse(dr["ID_plat"].ToString()); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public int Supprimer(int ID_listPlat) + { + CreerCommande("SupprimerT_listPlat"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_listPlat", ID_listPlat); + Commande.Connection.Open(); + res = Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + } +} diff --git a/ProjetTheAlone/Model/A_T_plat.cs b/ProjetTheAlone/Model/A_T_plat.cs new file mode 100644 index 0000000..145dc16 --- /dev/null +++ b/ProjetTheAlone/Model/A_T_plat.cs @@ -0,0 +1,106 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Data.SqlTypes; +using ProjetTheAlone.Classes; +#endregion + +namespace ProjetTheAlone.Acces +{ + /// + /// Couche d'accès aux données (Data Access Layer) + /// + public class A_T_plat : ADBase + { + #region Constructeurs + public A_T_plat(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(string P_nom, byte[] P_img, int? ID_typePlat) + { + CreerCommande("AjouterT_plat"); + int res = 0; + Commande.Parameters.Add("ID_plat", SqlDbType.Int); + Direction("ID_plat", ParameterDirection.Output); + if(P_nom == null) Commande.Parameters.AddWithValue("@P_nom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@P_nom", P_nom); + if(P_img == null) Commande.Parameters.AddWithValue("@P_img", Convert.DBNull); + else Commande.Parameters.AddWithValue("@P_img", P_img); + if(ID_typePlat == null) Commande.Parameters.AddWithValue("@ID_typePlat", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_typePlat", ID_typePlat); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + res = int.Parse(LireParametre("ID_plat")); + Commande.Connection.Close(); + return res; + } + public int Modifier(int ID_plat, string P_nom, byte[] P_img, int? ID_typePlat) + { + CreerCommande("ModifierT_plat"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_plat", ID_plat); + if(P_nom == null) Commande.Parameters.AddWithValue("@P_nom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@P_nom", P_nom); + if(P_img == null) Commande.Parameters.AddWithValue("@P_img", Convert.DBNull); + else Commande.Parameters.AddWithValue("@P_img", P_img); + if(ID_typePlat == null) Commande.Parameters.AddWithValue("@ID_typePlat", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_typePlat", ID_typePlat); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + public List Lire(string Index) + { + CreerCommande("SelectionnerT_plat"); + Commande.Parameters.AddWithValue("@Index", Index); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + List res = new List(); + while (dr.Read()) + { + C_T_plat tmp = new C_T_plat(); + tmp.ID_plat = int.Parse(dr["ID_plat"].ToString()); + if(dr["P_nom"] != DBNull.Value) tmp.P_nom = (dr["P_nom"].ToString()); + if(dr["P_img"] != DBNull.Value) tmp.P_img = Encoding.ASCII.GetBytes(dr["P_img"].ToString()); + if(dr["ID_typePlat"] != DBNull.Value) tmp.ID_typePlat = int.Parse(dr["ID_typePlat"].ToString()); + res.Add(tmp); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public C_T_plat Lire_ID(int ID_plat) + { + CreerCommande("SelectionnerT_plat_ID"); + Commande.Parameters.AddWithValue("@ID_plat", ID_plat); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + C_T_plat res = new C_T_plat(); + while (dr.Read()) + { + res.ID_plat = int.Parse(dr["ID_plat"].ToString()); + if(dr["P_nom"] != DBNull.Value) res.P_nom = (dr["P_nom"].ToString()); + if(dr["P_img"] != DBNull.Value) res.P_img = Encoding.ASCII.GetBytes(dr["P_img"].ToString()); + if(dr["ID_typePlat"] != DBNull.Value) res.ID_typePlat = int.Parse(dr["ID_typePlat"].ToString()); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public int Supprimer(int ID_plat) + { + CreerCommande("SupprimerT_plat"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_plat", ID_plat); + Commande.Connection.Open(); + res = Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + } +} diff --git a/ProjetTheAlone/Model/A_T_repa.cs b/ProjetTheAlone/Model/A_T_repa.cs new file mode 100644 index 0000000..9a6397a --- /dev/null +++ b/ProjetTheAlone/Model/A_T_repa.cs @@ -0,0 +1,100 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Data.SqlTypes; +using ProjetTheAlone.Classes; +#endregion + +namespace ProjetTheAlone.Acces +{ + /// + /// Couche d'accès aux données (Data Access Layer) + /// + public class A_T_repa : ADBase + { + #region Constructeurs + public A_T_repa(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(int? ID_listPlat, int? ID_typeRepa) + { + CreerCommande("AjouterT_repa"); + int res = 0; + Commande.Parameters.Add("ID_repa", SqlDbType.Int); + Direction("ID_repa", ParameterDirection.Output); + if(ID_listPlat == null) Commande.Parameters.AddWithValue("@ID_listPlat", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_listPlat", ID_listPlat); + if(ID_typeRepa == null) Commande.Parameters.AddWithValue("@ID_typeRepa", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_typeRepa", ID_typeRepa); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + res = int.Parse(LireParametre("ID_repa")); + Commande.Connection.Close(); + return res; + } + public int Modifier(int ID_repa, int? ID_listPlat, int? ID_typeRepa) + { + CreerCommande("ModifierT_repa"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_repa", ID_repa); + if(ID_listPlat == null) Commande.Parameters.AddWithValue("@ID_listPlat", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_listPlat", ID_listPlat); + if(ID_typeRepa == null) Commande.Parameters.AddWithValue("@ID_typeRepa", Convert.DBNull); + else Commande.Parameters.AddWithValue("@ID_typeRepa", ID_typeRepa); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + public List Lire(string Index) + { + CreerCommande("SelectionnerT_repa"); + Commande.Parameters.AddWithValue("@Index", Index); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + List res = new List(); + while (dr.Read()) + { + C_T_repa tmp = new C_T_repa(); + tmp.ID_repa = int.Parse(dr["ID_repa"].ToString()); + if(dr["ID_listPlat"] != DBNull.Value) tmp.ID_listPlat = int.Parse(dr["ID_listPlat"].ToString()); + if(dr["ID_typeRepa"] != DBNull.Value) tmp.ID_typeRepa = int.Parse(dr["ID_typeRepa"].ToString()); + res.Add(tmp); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public C_T_repa Lire_ID(int ID_repa) + { + CreerCommande("SelectionnerT_repa_ID"); + Commande.Parameters.AddWithValue("@ID_repa", ID_repa); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + C_T_repa res = new C_T_repa(); + while (dr.Read()) + { + res.ID_repa = int.Parse(dr["ID_repa"].ToString()); + if(dr["ID_listPlat"] != DBNull.Value) res.ID_listPlat = int.Parse(dr["ID_listPlat"].ToString()); + if(dr["ID_typeRepa"] != DBNull.Value) res.ID_typeRepa = int.Parse(dr["ID_typeRepa"].ToString()); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public int Supprimer(int ID_repa) + { + CreerCommande("SupprimerT_repa"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_repa", ID_repa); + Commande.Connection.Open(); + res = Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + } +} diff --git a/ProjetTheAlone/Model/A_T_typeEvenement.cs b/ProjetTheAlone/Model/A_T_typeEvenement.cs new file mode 100644 index 0000000..3b281c6 --- /dev/null +++ b/ProjetTheAlone/Model/A_T_typeEvenement.cs @@ -0,0 +1,96 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Data.SqlTypes; +using ProjetTheAlone.Classes; +#endregion + +namespace ProjetTheAlone.Acces +{ + /// + /// Couche d'accès aux données (Data Access Layer) + /// + public class A_T_typeEvenement : ADBase + { + string _TE_Nom; + public string TE_Nom { get => _TE_Nom; set => _TE_Nom = value; } + #region Constructeurs + public A_T_typeEvenement(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(string TE_nom) + { + CreerCommande("AjouterT_typeEvenement"); + int res = 0; + Commande.Parameters.Add("ID_typeEvenement", SqlDbType.Int); + Direction("ID_typeEvenement", ParameterDirection.Output); + if(TE_nom == null) Commande.Parameters.AddWithValue("@TE_nom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@TE_nom", TE_nom); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + res = int.Parse(LireParametre("ID_typeEvenement")); + Commande.Connection.Close(); + return res; + } + public int Modifier(int ID_typeEvenement,string TE_nom) + { + CreerCommande("ModifierT_typeEvenement"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_typeEvenement", ID_typeEvenement); + if(TE_nom == null) Commande.Parameters.AddWithValue("@TE_nom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@TE_nom", TE_nom); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + public List Lire(string Index) + { + CreerCommande("SelectionnerT_typeEvenement"); + Commande.Parameters.AddWithValue("@Index", Index); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + List res = new List(); + while (dr.Read()) + { + C_T_typeEvenement tmp = new C_T_typeEvenement(); + tmp.ID_typeEvenement = int.Parse(dr["ID_typeEvenement"].ToString()); + if(dr["TE_nom"] != DBNull.Value) tmp.TE_nom = (dr["TE_nom"].ToString()); + res.Add(tmp); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public C_T_typeEvenement Lire_ID(int ID_typeEvenement) + { + CreerCommande("SelectionnerT_typeEvenement_ID"); + Commande.Parameters.AddWithValue("@ID_typeEvenement", ID_typeEvenement); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + C_T_typeEvenement res = new C_T_typeEvenement(); + while (dr.Read()) + { + res.ID_typeEvenement = int.Parse(dr["ID_typeEvenement"].ToString()); + if(dr["TE_nom"] != DBNull.Value) res.TE_nom = (dr["TE_nom"].ToString()); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public int Supprimer(int ID_typeEvenement) + { + CreerCommande("SupprimerT_typeEvenement"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_typeEvenement", ID_typeEvenement); + Commande.Connection.Open(); + res = Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + } +} diff --git a/ProjetTheAlone/Model/A_T_typePlat.cs b/ProjetTheAlone/Model/A_T_typePlat.cs new file mode 100644 index 0000000..7bb322d --- /dev/null +++ b/ProjetTheAlone/Model/A_T_typePlat.cs @@ -0,0 +1,94 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Data.SqlTypes; +using ProjetTheAlone.Classes; +#endregion + +namespace ProjetTheAlone.Acces +{ + /// + /// Couche d'accès aux données (Data Access Layer) + /// + public class A_T_typePlat : ADBase + { + #region Constructeurs + public A_T_typePlat(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(string TP_nom) + { + CreerCommande("AjouterT_typePlat"); + int res = 0; + Commande.Parameters.Add("ID_typePlat", SqlDbType.Int); + Direction("ID_typePlat", ParameterDirection.Output); + if(TP_nom == null) Commande.Parameters.AddWithValue("@TP_nom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@TP_nom", TP_nom); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + res = int.Parse(LireParametre("ID_typePlat")); + Commande.Connection.Close(); + return res; + } + public int Modifier(int ID_typePlat, string TP_nom) + { + CreerCommande("ModifierT_typePlat"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_typePlat", ID_typePlat); + if(TP_nom == null) Commande.Parameters.AddWithValue("@TP_nom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@TP_nom", TP_nom); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + public List Lire(string Index) + { + CreerCommande("SelectionnerT_typePlat"); + Commande.Parameters.AddWithValue("@Index", Index); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + List res = new List(); + while (dr.Read()) + { + C_T_typePlat tmp = new C_T_typePlat(); + tmp.ID_typePlat = int.Parse(dr["ID_typePlat"].ToString()); + tmp.TP_nom = dr["TP_nom"].ToString(); + res.Add(tmp); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public C_T_typePlat Lire_ID(int ID_typePlat) + { + CreerCommande("SelectionnerT_typePlat_ID"); + Commande.Parameters.AddWithValue("@ID_typePlat", ID_typePlat); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + C_T_typePlat res = new C_T_typePlat(); + while (dr.Read()) + { + res.ID_typePlat = int.Parse(dr["ID_typePlat"].ToString()); + res.TP_nom = dr["TP_nom"].ToString(); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public int Supprimer(int ID_typePlat) + { + CreerCommande("SupprimerT_typePlat"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_typePlat", ID_typePlat); + Commande.Connection.Open(); + res = Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + } +} diff --git a/ProjetTheAlone/Model/A_T_typeRepa.cs b/ProjetTheAlone/Model/A_T_typeRepa.cs new file mode 100644 index 0000000..580161b --- /dev/null +++ b/ProjetTheAlone/Model/A_T_typeRepa.cs @@ -0,0 +1,94 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using System.Data; +using System.Data.SqlClient; +using System.Data.SqlTypes; +using ProjetTheAlone.Classes; +#endregion + +namespace ProjetTheAlone.Acces +{ + /// + /// Couche d'accès aux données (Data Access Layer) + /// + public class A_T_typeRepa : ADBase + { + #region Constructeurs + public A_T_typeRepa(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(string TR_nom) + { + CreerCommande("AjouterT_typeRepa"); + int res = 0; + Commande.Parameters.Add("ID_typeRepa", SqlDbType.Int); + Direction("ID_typeRepa", ParameterDirection.Output); + if(TR_nom == null) Commande.Parameters.AddWithValue("@TR_nom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@TR_nom", TR_nom); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + res = int.Parse(LireParametre("ID_typeRepa")); + Commande.Connection.Close(); + return res; + } + public int Modifier(int ID_typeRepa, string TR_nom) + { + CreerCommande("ModifierT_typeRepa"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_typeRepa", ID_typeRepa); + if(TR_nom == null) Commande.Parameters.AddWithValue("@TR_nom", Convert.DBNull); + else Commande.Parameters.AddWithValue("@TR_nom", TR_nom); + Commande.Connection.Open(); + Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + public List Lire(string Index) + { + CreerCommande("SelectionnerT_typeRepa"); + Commande.Parameters.AddWithValue("@Index", Index); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + List res = new List(); + while (dr.Read()) + { + C_T_typeRepa tmp = new C_T_typeRepa(); + tmp.ID_typeRepa = int.Parse(dr["ID_typeRepa"].ToString()); + tmp.TR_nom = dr["TR_nom"].ToString(); + res.Add(tmp); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public C_T_typeRepa Lire_ID(int ID_typeRepa) + { + CreerCommande("SelectionnerT_typeRepa_ID"); + Commande.Parameters.AddWithValue("@ID_typeRepa", ID_typeRepa); + Commande.Connection.Open(); + SqlDataReader dr = Commande.ExecuteReader(); + C_T_typeRepa res = new C_T_typeRepa(); + while (dr.Read()) + { + res.ID_typeRepa = int.Parse(dr["ID_typeRepa"].ToString()); + res.TR_nom = dr["TR_nom"].ToString(); + } + dr.Close(); + Commande.Connection.Close(); + return res; + } + public int Supprimer(int ID_typeRepa) + { + CreerCommande("SupprimerT_typeRepa"); + int res = 0; + Commande.Parameters.AddWithValue("@ID_typeRepa", ID_typeRepa); + Commande.Connection.Open(); + res = Commande.ExecuteNonQuery(); + Commande.Connection.Close(); + return res; + } + } +} diff --git a/ProjetTheAlone/Model/C_T_beneficiaire.cs b/ProjetTheAlone/Model/C_T_beneficiaire.cs new file mode 100644 index 0000000..2b1f32b --- /dev/null +++ b/ProjetTheAlone/Model/C_T_beneficiaire.cs @@ -0,0 +1,65 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +#endregion + +namespace ProjetTheAlone.Classes +{ + /// + /// Classe de définition des données + /// + public class C_T_beneficiaire + { + #region Données membres + private int _ID_beneficiaire; + private string _B_nom; + private string _B_prenom; + private DateTime? _B_anniversaire; + private string _B_img; + #endregion + #region Constructeurs + public C_T_beneficiaire() + { } + public C_T_beneficiaire(string B_nom_, string B_prenom_, DateTime? B_anniversaire_, string B_img_) + { + B_nom = B_nom_; + B_prenom = B_prenom_; + B_anniversaire = B_anniversaire_; + B_img = B_img_; + } + public C_T_beneficiaire(int ID_beneficiaire_, string B_nom_, string B_prenom_, DateTime? B_anniversaire_, string B_img_) + : this(B_nom_, B_prenom_, B_anniversaire_, B_img_) + { + ID_beneficiaire = ID_beneficiaire_; + } + #endregion + #region Accesseurs + public int ID_beneficiaire + { + get { return _ID_beneficiaire; } + set { _ID_beneficiaire = value; } + } + public string B_nom + { + get { return _B_nom; } + set { _B_nom = value; } + } + public string B_prenom + { + get { return _B_prenom; } + set { _B_prenom = value; } + } + public DateTime? B_anniversaire + { + get { return _B_anniversaire; } + set { _B_anniversaire = value; } + } + public string B_img + { + get { return _B_img; } + set { _B_img = value; } + } + #endregion + } +} diff --git a/ProjetTheAlone/Model/C_T_equipe.cs b/ProjetTheAlone/Model/C_T_equipe.cs new file mode 100644 index 0000000..538b053 --- /dev/null +++ b/ProjetTheAlone/Model/C_T_equipe.cs @@ -0,0 +1,58 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +#endregion + +namespace ProjetTheAlone.Classes +{ + /// + /// Classe de définition des données + /// + public class C_T_equipe + { + #region Données membres + private int _ID_equipe; + private string _E_nom; + private string _E_point; + private int? _ID_evenement; + #endregion + #region Constructeurs + public C_T_equipe() + { } + public C_T_equipe(string E_nom_, string E_point_, int? ID_evenement_) + { + E_nom = E_nom_; + E_point = E_point_; + ID_evenement = ID_evenement_; + } + public C_T_equipe(int ID_equipe_, string E_nom_, string E_point_, int? ID_evenement_) + : this(E_nom_, E_point_, ID_evenement_) + { + ID_equipe = ID_equipe_; + } + #endregion + #region Accesseurs + public int ID_equipe + { + get { return _ID_equipe; } + set { _ID_equipe = value; } + } + public string E_nom + { + get { return _E_nom; } + set { _E_nom = value; } + } + public string E_point + { + get { return _E_point; } + set { _E_point = value; } + } + public int? ID_evenement + { + get { return _ID_evenement; } + set { _ID_evenement = value; } + } + #endregion + } +} diff --git a/ProjetTheAlone/Model/C_T_event.cs b/ProjetTheAlone/Model/C_T_event.cs new file mode 100644 index 0000000..5c3fe21 --- /dev/null +++ b/ProjetTheAlone/Model/C_T_event.cs @@ -0,0 +1,67 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +#endregion + +namespace ProjetTheAlone.Classes +{ + /// + /// Classe de définition des données + /// + public class C_T_event + { + #region Données membres + private int _ID_event; + private DateTime? _E_date; + private DateTime? _E_duree; + private int? _ID_typeEvenement; + private string _E_description; + private int? _ID_lieu; + #endregion + #region Constructeurs + public C_T_event() + { } + public C_T_event(DateTime? E_date_, DateTime? E_duree_, int? ID_typeEvenement_, string E_description_, int? ID_lieu_) + { + E_date = E_date_; + E_duree = E_duree_; + ID_typeEvenement = ID_typeEvenement_; + E_description = E_description_; + ID_lieu = ID_lieu_; + } + public C_T_event(int ID_event_, DateTime? E_date_, DateTime? E_duree_, int? ID_typeEvenement_, string E_description_, int? ID_lieu_) + : this(E_date_, E_duree_, ID_typeEvenement_, E_description_, ID_lieu_) + { + ID_event = ID_event_; + } + #endregion + #region Accesseurs + public int ID_event + { + get { return _ID_event; } + set { _ID_event = value; } + } + public DateTime? E_date + { + get { return _E_date; } + set { _E_date = value; } + } + public DateTime? E_duree + { + get { return _E_duree; } + set { _E_duree = value; } + } + public int? ID_typeEvenement + { + get { return _ID_typeEvenement; } + set { _ID_typeEvenement = value; } + } + + public string E_description { get => _E_description; set => _E_description = value; } + public int? ID_lieu { get => _ID_lieu; set => _ID_lieu = value; } + + + #endregion + } +} diff --git a/ProjetTheAlone/Model/C_T_lieu.cs b/ProjetTheAlone/Model/C_T_lieu.cs new file mode 100644 index 0000000..0e921a1 --- /dev/null +++ b/ProjetTheAlone/Model/C_T_lieu.cs @@ -0,0 +1,44 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +#endregion + +namespace ProjetTheAlone.Classes +{ + /// + /// Classe de définition des données + /// + public class C_T_lieu + { + #region Données membres + private int _ID_lieu; + private string _L_nom; + #endregion + #region Constructeurs + public C_T_lieu() + { } + public C_T_lieu(string L_nom_) + { + L_nom = L_nom_; + } + public C_T_lieu(int ID_lieu_,string L_nom_) + : this(L_nom_) + { + ID_lieu = ID_lieu_; + } + #endregion + #region Accesseurs + public int ID_lieu + { + get { return _ID_lieu; } + set { _ID_lieu = value; } + } + public string L_nom + { + get { return _L_nom; } + set { _L_nom = value; } + } + #endregion + } +} diff --git a/ProjetTheAlone/Model/C_T_listParticipant.cs b/ProjetTheAlone/Model/C_T_listParticipant.cs new file mode 100644 index 0000000..e9bbc6f --- /dev/null +++ b/ProjetTheAlone/Model/C_T_listParticipant.cs @@ -0,0 +1,51 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +#endregion + +namespace ProjetTheAlone.Classes +{ + /// + /// Classe de définition des données + /// + public class C_T_listParticipant + { + #region Données membres + private int _ID_LP; + private int? _ID_equipe; + private int? _ID_benificiaire; + #endregion + #region Constructeurs + public C_T_listParticipant() + { } + public C_T_listParticipant(int? ID_equipe_, int? ID_benificiaire_) + { + ID_equipe = ID_equipe_; + ID_benificiaire = ID_benificiaire_; + } + public C_T_listParticipant(int ID_LP_, int? ID_equipe_, int? ID_benificiaire_) + : this(ID_equipe_, ID_benificiaire_) + { + ID_LP = ID_LP_; + } + #endregion + #region Accesseurs + public int ID_LP + { + get { return _ID_LP; } + set { _ID_LP = value; } + } + public int? ID_equipe + { + get { return _ID_equipe; } + set { _ID_equipe = value; } + } + public int? ID_benificiaire + { + get { return _ID_benificiaire; } + set { _ID_benificiaire = value; } + } + #endregion + } +} diff --git a/ProjetTheAlone/Model/C_T_listPlat.cs b/ProjetTheAlone/Model/C_T_listPlat.cs new file mode 100644 index 0000000..ca70cc3 --- /dev/null +++ b/ProjetTheAlone/Model/C_T_listPlat.cs @@ -0,0 +1,51 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +#endregion + +namespace ProjetTheAlone.Classes +{ + /// + /// Classe de définition des données + /// + public class C_T_listPlat + { + #region Données membres + private int _ID_listPlat; + private int _ID_repa; + private int _ID_plat; + #endregion + #region Constructeurs + public C_T_listPlat() + { } + public C_T_listPlat(int ID_repa_, int ID_plat_) + { + ID_repa = ID_repa_; + ID_plat = ID_plat_; + } + public C_T_listPlat(int ID_listPlat_, int ID_repa_, int ID_plat_) + : this(ID_repa_, ID_plat_) + { + ID_listPlat = ID_listPlat_; + } + #endregion + #region Accesseurs + public int ID_listPlat + { + get { return _ID_listPlat; } + set { _ID_listPlat = value; } + } + public int ID_repa + { + get { return _ID_repa; } + set { _ID_repa = value; } + } + public int ID_plat + { + get { return _ID_plat; } + set { _ID_plat = value; } + } + #endregion + } +} diff --git a/ProjetTheAlone/Model/C_T_plat.cs b/ProjetTheAlone/Model/C_T_plat.cs new file mode 100644 index 0000000..fc78e0c --- /dev/null +++ b/ProjetTheAlone/Model/C_T_plat.cs @@ -0,0 +1,58 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +#endregion + +namespace ProjetTheAlone.Classes +{ + /// + /// Classe de définition des données + /// + public class C_T_plat + { + #region Données membres + private int _ID_plat; + private string _P_nom; + private byte[] _P_img; + private int? _ID_typePlat; + #endregion + #region Constructeurs + public C_T_plat() + { } + public C_T_plat(string P_nom_, byte[] P_img_, int? ID_typePlat_) + { + P_nom = P_nom_; + P_img = P_img_; + ID_typePlat = ID_typePlat_; + } + public C_T_plat(int ID_plat_, string P_nom_, byte[] P_img_, int? ID_typePlat_) + : this(P_nom_, P_img_, ID_typePlat_) + { + ID_plat = ID_plat_; + } + #endregion + #region Accesseurs + public int ID_plat + { + get { return _ID_plat; } + set { _ID_plat = value; } + } + public string P_nom + { + get { return _P_nom; } + set { _P_nom = value; } + } + public byte[] P_img + { + get { return _P_img; } + set { _P_img = value; } + } + public int? ID_typePlat + { + get { return _ID_typePlat; } + set { _ID_typePlat = value; } + } + #endregion + } +} diff --git a/ProjetTheAlone/Model/C_T_repa.cs b/ProjetTheAlone/Model/C_T_repa.cs new file mode 100644 index 0000000..598c381 --- /dev/null +++ b/ProjetTheAlone/Model/C_T_repa.cs @@ -0,0 +1,51 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +#endregion + +namespace ProjetTheAlone.Classes +{ + /// + /// Classe de définition des données + /// + public class C_T_repa + { + #region Données membres + private int _ID_repa; + private int? _ID_listPlat; + private int? _ID_typeRepa; + #endregion + #region Constructeurs + public C_T_repa() + { } + public C_T_repa(int? ID_listPlat_, int? ID_typeRepa_) + { + ID_listPlat = ID_listPlat_; + ID_typeRepa = ID_typeRepa_; + } + public C_T_repa(int ID_repa_, int? ID_listPlat_, int? ID_typeRepa_) + : this(ID_listPlat_, ID_typeRepa_) + { + ID_repa = ID_repa_; + } + #endregion + #region Accesseurs + public int ID_repa + { + get { return _ID_repa; } + set { _ID_repa = value; } + } + public int? ID_listPlat + { + get { return _ID_listPlat; } + set { _ID_listPlat = value; } + } + public int? ID_typeRepa + { + get { return _ID_typeRepa; } + set { _ID_typeRepa = value; } + } + #endregion + } +} diff --git a/ProjetTheAlone/Model/C_T_typeEvenement.cs b/ProjetTheAlone/Model/C_T_typeEvenement.cs new file mode 100644 index 0000000..dc2d7ce --- /dev/null +++ b/ProjetTheAlone/Model/C_T_typeEvenement.cs @@ -0,0 +1,44 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +#endregion + +namespace ProjetTheAlone.Classes +{ + /// + /// Classe de définition des données + /// + public class C_T_typeEvenement + { + #region Données membres + private int _ID_typeEvenement; + private string _TE_nom; + #endregion + #region Constructeurs + public C_T_typeEvenement() + { } + public C_T_typeEvenement(string TE_nom_) + { + TE_nom = TE_nom_; + } + public C_T_typeEvenement(int ID_typeEvenement_,string TE_nom_) + : this(TE_nom_) + { + ID_typeEvenement = ID_typeEvenement_; + } + #endregion + #region Accesseurs + public int ID_typeEvenement + { + get { return _ID_typeEvenement; } + set { _ID_typeEvenement = value; } + } + public string TE_nom + { + get { return _TE_nom; } + set { _TE_nom = value; } + } + #endregion + } +} diff --git a/ProjetTheAlone/Model/C_T_typePlat.cs b/ProjetTheAlone/Model/C_T_typePlat.cs new file mode 100644 index 0000000..d2a54b9 --- /dev/null +++ b/ProjetTheAlone/Model/C_T_typePlat.cs @@ -0,0 +1,44 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +#endregion + +namespace ProjetTheAlone.Classes +{ + /// + /// Classe de définition des données + /// + public class C_T_typePlat + { + #region Données membres + private int _ID_typePlat; + private string _TP_nom; + #endregion + #region Constructeurs + public C_T_typePlat() + { } + public C_T_typePlat(string TP_nom_) + { + TP_nom = TP_nom_; + } + public C_T_typePlat(int ID_typePlat_, string TP_nom_) + : this(TP_nom_) + { + ID_typePlat = ID_typePlat_; + } + #endregion + #region Accesseurs + public int ID_typePlat + { + get { return _ID_typePlat; } + set { _ID_typePlat = value; } + } + public string TP_nom + { + get { return _TP_nom; } + set { _TP_nom = value; } + } + #endregion + } +} diff --git a/ProjetTheAlone/Model/C_T_typeRepa.cs b/ProjetTheAlone/Model/C_T_typeRepa.cs new file mode 100644 index 0000000..8b46773 --- /dev/null +++ b/ProjetTheAlone/Model/C_T_typeRepa.cs @@ -0,0 +1,44 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +#endregion + +namespace ProjetTheAlone.Classes +{ + /// + /// Classe de définition des données + /// + public class C_T_typeRepa + { + #region Données membres + private int _ID_typeRepa; + private string _TR_nom; + #endregion + #region Constructeurs + public C_T_typeRepa() + { } + public C_T_typeRepa(string TR_nom_) + { + TR_nom = TR_nom_; + } + public C_T_typeRepa(int ID_typeRepa_, string TR_nom_) + : this(TR_nom_) + { + ID_typeRepa = ID_typeRepa_; + } + #endregion + #region Accesseurs + public int ID_typeRepa + { + get { return _ID_typeRepa; } + set { _ID_typeRepa = value; } + } + public string TR_nom + { + get { return _TR_nom; } + set { _TR_nom = value; } + } + #endregion + } +} diff --git a/ProjetTheAlone/Model/EventPasseModel.cs b/ProjetTheAlone/Model/EventPasseModel.cs new file mode 100644 index 0000000..18e018e --- /dev/null +++ b/ProjetTheAlone/Model/EventPasseModel.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjetTheAlone.Model +{ + public class EventPasseModel : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + ObservableCollection classement; + + public ObservableCollection Classement { get => classement; set { classement = value; OnPropertyChanged("Classement"); } } + + public EventPasseModel(ObservableCollection classement) + { + Classement = classement; + } + + protected void OnPropertyChanged(string name) + { + PropertyChangedEventHandler handler = PropertyChanged; + if (handler != null) + { + handler(this, new PropertyChangedEventArgs(name)); + } + } + } +} diff --git a/ProjetTheAlone/Model/G_Base.cs b/ProjetTheAlone/Model/G_Base.cs new file mode 100644 index 0000000..e5a7d1b --- /dev/null +++ b/ProjetTheAlone/Model/G_Base.cs @@ -0,0 +1,28 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +#endregion + +namespace ProjetTheAlone.Gestion +{ + public class G_Base + { + #region Données membres + string _ChaineConnexion; + #endregion + #region Constructeurs + public G_Base() + { ChaineConnexion = ""; } + public G_Base(string sChaineConnexion) + { ChaineConnexion = sChaineConnexion; } + #endregion + #region Accesseur + public string ChaineConnexion + { + get { return _ChaineConnexion; } + set { _ChaineConnexion = value; } + } + #endregion + } +} diff --git a/ProjetTheAlone/Model/G_T_beneficiaire.cs b/ProjetTheAlone/Model/G_T_beneficiaire.cs new file mode 100644 index 0000000..eeba4e7 --- /dev/null +++ b/ProjetTheAlone/Model/G_T_beneficiaire.cs @@ -0,0 +1,35 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using ProjetTheAlone.Classes; +using ProjetTheAlone.Acces; +#endregion + +namespace ProjetTheAlone.Gestion +{ + /// + /// Couche intermédiaire de gestion (Business Layer) + /// + public class G_T_beneficiaire : G_Base + { + #region Constructeurs + public G_T_beneficiaire() + : base() + { } + public G_T_beneficiaire(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(string B_nom, string B_prenom, DateTime? B_anniversaire, string B_img) + { return new A_T_beneficiaire(ChaineConnexion).Ajouter(B_nom, B_prenom, B_anniversaire, B_img); } + public int Modifier(int ID_beneficiaire, string B_nom, string B_prenom, DateTime? B_anniversaire, string B_img) + { return new A_T_beneficiaire(ChaineConnexion).Modifier(ID_beneficiaire, B_nom, B_prenom, B_anniversaire, B_img); } + public List Lire(string Index) + { return new A_T_beneficiaire(ChaineConnexion).Lire(Index); } + public C_T_beneficiaire Lire_ID(int ID_beneficiaire) + { return new A_T_beneficiaire(ChaineConnexion).Lire_ID(ID_beneficiaire); } + public int Supprimer(int ID_beneficiaire) + { return new A_T_beneficiaire(ChaineConnexion).Supprimer(ID_beneficiaire); } + } +} diff --git a/ProjetTheAlone/Model/G_T_equipe.cs b/ProjetTheAlone/Model/G_T_equipe.cs new file mode 100644 index 0000000..06f0df6 --- /dev/null +++ b/ProjetTheAlone/Model/G_T_equipe.cs @@ -0,0 +1,35 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using ProjetTheAlone.Classes; +using ProjetTheAlone.Acces; +#endregion + +namespace ProjetTheAlone.Gestion +{ + /// + /// Couche intermédiaire de gestion (Business Layer) + /// + public class G_T_equipe : G_Base + { + #region Constructeurs + public G_T_equipe() + : base() + { } + public G_T_equipe(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(string E_nom, string E_point, int? ID_evenement) + { return new A_T_equipe(ChaineConnexion).Ajouter(E_nom, E_point, ID_evenement); } + public int Modifier(int ID_equipe, string E_nom, string E_point, int? ID_evenement) + { return new A_T_equipe(ChaineConnexion).Modifier(ID_equipe, E_nom, E_point, ID_evenement); } + public List Lire(string Index) + { return new A_T_equipe(ChaineConnexion).Lire(Index); } + public C_T_equipe Lire_ID(int ID_equipe) + { return new A_T_equipe(ChaineConnexion).Lire_ID(ID_equipe); } + public int Supprimer(int ID_equipe) + { return new A_T_equipe(ChaineConnexion).Supprimer(ID_equipe); } + } +} diff --git a/ProjetTheAlone/Model/G_T_event.cs b/ProjetTheAlone/Model/G_T_event.cs new file mode 100644 index 0000000..0c8ae58 --- /dev/null +++ b/ProjetTheAlone/Model/G_T_event.cs @@ -0,0 +1,35 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using ProjetTheAlone.Classes; +using ProjetTheAlone.Acces; +#endregion + +namespace ProjetTheAlone.Gestion +{ + /// + /// Couche intermédiaire de gestion (Business Layer) + /// + public class G_T_event : G_Base + { + #region Constructeurs + public G_T_event() + : base() + { } + public G_T_event(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(DateTime? E_date, DateTime? E_duree, int? ID_typeEvenement, string E_description, int? ID_lieu) + { return new A_T_event(ChaineConnexion).Ajouter(E_date, E_duree, ID_typeEvenement,E_description, ID_lieu); } + public int Modifier(int ID_event, DateTime? E_date, DateTime? E_duree, int? ID_typeEvenement, string E_description, int? ID_lieu) + { return new A_T_event(ChaineConnexion).Modifier(ID_event, E_date, E_duree, ID_typeEvenement, E_description, ID_lieu); } + public List Lire(string Index) + { return new A_T_event(ChaineConnexion).Lire(Index); } + public C_T_event Lire_ID(int ID_event) + { return new A_T_event(ChaineConnexion).Lire_ID(ID_event); } + public int Supprimer(int ID_event) + { return new A_T_event(ChaineConnexion).Supprimer(ID_event); } + } +} diff --git a/ProjetTheAlone/Model/G_T_lieu.cs b/ProjetTheAlone/Model/G_T_lieu.cs new file mode 100644 index 0000000..3ff93a0 --- /dev/null +++ b/ProjetTheAlone/Model/G_T_lieu.cs @@ -0,0 +1,35 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using ProjetTheAlone.Classes; +using ProjetTheAlone.Acces; +#endregion + +namespace ProjetTheAlone.Gestion +{ + /// + /// Couche intermédiaire de gestion (Business Layer) + /// + public class G_T_lieu : G_Base + { + #region Constructeurs + public G_T_lieu() + : base() + { } + public G_T_lieu(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(string L_nom) + { return new A_T_lieu(ChaineConnexion).Ajouter(L_nom); } + public int Modifier(int ID_lieu,string L_nom) + { return new A_T_lieu(ChaineConnexion).Modifier(ID_lieu, L_nom); } + public List Lire(string Index) + { return new A_T_lieu(ChaineConnexion).Lire(Index); } + public C_T_lieu Lire_ID(int ID_lieu) + { return new A_T_lieu(ChaineConnexion).Lire_ID(ID_lieu); } + public int Supprimer(int ID_lieu) + { return new A_T_lieu(ChaineConnexion).Supprimer(ID_lieu); } + } +} diff --git a/ProjetTheAlone/Model/G_T_listParticipant.cs b/ProjetTheAlone/Model/G_T_listParticipant.cs new file mode 100644 index 0000000..e4c93ce --- /dev/null +++ b/ProjetTheAlone/Model/G_T_listParticipant.cs @@ -0,0 +1,35 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using ProjetTheAlone.Classes; +using ProjetTheAlone.Acces; +#endregion + +namespace ProjetTheAlone.Gestion +{ + /// + /// Couche intermédiaire de gestion (Business Layer) + /// + public class G_T_listParticipant : G_Base + { + #region Constructeurs + public G_T_listParticipant() + : base() + { } + public G_T_listParticipant(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(int? ID_equipe, int? ID_benificiaire) + { return new A_T_listParticipant(ChaineConnexion).Ajouter(ID_equipe, ID_benificiaire); } + public int Modifier(int ID_LP, int? ID_equipe, int? ID_benificiaire) + { return new A_T_listParticipant(ChaineConnexion).Modifier(ID_LP, ID_equipe, ID_benificiaire); } + public List Lire(string Index) + { return new A_T_listParticipant(ChaineConnexion).Lire(Index); } + public C_T_listParticipant Lire_ID(int ID_LP) + { return new A_T_listParticipant(ChaineConnexion).Lire_ID(ID_LP); } + public int Supprimer(int ID_LP) + { return new A_T_listParticipant(ChaineConnexion).Supprimer(ID_LP); } + } +} diff --git a/ProjetTheAlone/Model/G_T_listPlat.cs b/ProjetTheAlone/Model/G_T_listPlat.cs new file mode 100644 index 0000000..1be2cd7 --- /dev/null +++ b/ProjetTheAlone/Model/G_T_listPlat.cs @@ -0,0 +1,35 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using ProjetTheAlone.Classes; +using ProjetTheAlone.Acces; +#endregion + +namespace ProjetTheAlone.Gestion +{ + /// + /// Couche intermédiaire de gestion (Business Layer) + /// + public class G_T_listPlat : G_Base + { + #region Constructeurs + public G_T_listPlat() + : base() + { } + public G_T_listPlat(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(int ID_repa, int ID_plat) + { return new A_T_listPlat(ChaineConnexion).Ajouter(ID_repa, ID_plat); } + public int Modifier(int ID_listPlat, int ID_repa, int ID_plat) + { return new A_T_listPlat(ChaineConnexion).Modifier(ID_listPlat, ID_repa, ID_plat); } + public List Lire(string Index) + { return new A_T_listPlat(ChaineConnexion).Lire(Index); } + public C_T_listPlat Lire_ID(int ID_listPlat) + { return new A_T_listPlat(ChaineConnexion).Lire_ID(ID_listPlat); } + public int Supprimer(int ID_listPlat) + { return new A_T_listPlat(ChaineConnexion).Supprimer(ID_listPlat); } + } +} diff --git a/ProjetTheAlone/Model/G_T_plat.cs b/ProjetTheAlone/Model/G_T_plat.cs new file mode 100644 index 0000000..c38c1e5 --- /dev/null +++ b/ProjetTheAlone/Model/G_T_plat.cs @@ -0,0 +1,35 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using ProjetTheAlone.Classes; +using ProjetTheAlone.Acces; +#endregion + +namespace ProjetTheAlone.Gestion +{ + /// + /// Couche intermédiaire de gestion (Business Layer) + /// + public class G_T_plat : G_Base + { + #region Constructeurs + public G_T_plat() + : base() + { } + public G_T_plat(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(string P_nom, byte[] P_img, int? ID_typePlat) + { return new A_T_plat(ChaineConnexion).Ajouter(P_nom, P_img, ID_typePlat); } + public int Modifier(int ID_plat, string P_nom, byte[] P_img, int? ID_typePlat) + { return new A_T_plat(ChaineConnexion).Modifier(ID_plat, P_nom, P_img, ID_typePlat); } + public List Lire(string Index) + { return new A_T_plat(ChaineConnexion).Lire(Index); } + public C_T_plat Lire_ID(int ID_plat) + { return new A_T_plat(ChaineConnexion).Lire_ID(ID_plat); } + public int Supprimer(int ID_plat) + { return new A_T_plat(ChaineConnexion).Supprimer(ID_plat); } + } +} diff --git a/ProjetTheAlone/Model/G_T_repa.cs b/ProjetTheAlone/Model/G_T_repa.cs new file mode 100644 index 0000000..e125be1 --- /dev/null +++ b/ProjetTheAlone/Model/G_T_repa.cs @@ -0,0 +1,35 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using ProjetTheAlone.Classes; +using ProjetTheAlone.Acces; +#endregion + +namespace ProjetTheAlone.Gestion +{ + /// + /// Couche intermédiaire de gestion (Business Layer) + /// + public class G_T_repa : G_Base + { + #region Constructeurs + public G_T_repa() + : base() + { } + public G_T_repa(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(int? ID_listPlat, int? ID_typeRepa) + { return new A_T_repa(ChaineConnexion).Ajouter(ID_listPlat, ID_typeRepa); } + public int Modifier(int ID_repa, int? ID_listPlat, int? ID_typeRepa) + { return new A_T_repa(ChaineConnexion).Modifier(ID_repa, ID_listPlat, ID_typeRepa); } + public List Lire(string Index) + { return new A_T_repa(ChaineConnexion).Lire(Index); } + public C_T_repa Lire_ID(int ID_repa) + { return new A_T_repa(ChaineConnexion).Lire_ID(ID_repa); } + public int Supprimer(int ID_repa) + { return new A_T_repa(ChaineConnexion).Supprimer(ID_repa); } + } +} diff --git a/ProjetTheAlone/Model/G_T_typeEvenement.cs b/ProjetTheAlone/Model/G_T_typeEvenement.cs new file mode 100644 index 0000000..522d92f --- /dev/null +++ b/ProjetTheAlone/Model/G_T_typeEvenement.cs @@ -0,0 +1,35 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using ProjetTheAlone.Classes; +using ProjetTheAlone.Acces; +#endregion + +namespace ProjetTheAlone.Gestion +{ + /// + /// Couche intermédiaire de gestion (Business Layer) + /// + public class G_T_typeEvenement : G_Base + { + #region Constructeurs + public G_T_typeEvenement() + : base() + { } + public G_T_typeEvenement(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(string TE_nom) + { return new A_T_typeEvenement(ChaineConnexion).Ajouter(TE_nom); } + public int Modifier(int ID_typeEvenement, string TE_nom) + { return new A_T_typeEvenement(ChaineConnexion).Modifier(ID_typeEvenement, TE_nom); } + public List Lire(string Index) + { return new A_T_typeEvenement(ChaineConnexion).Lire(Index); } + public C_T_typeEvenement Lire_ID(int ID_typeEvenement) + { return new A_T_typeEvenement(ChaineConnexion).Lire_ID(ID_typeEvenement); } + public int Supprimer(int ID_typeEvenement) + { return new A_T_typeEvenement(ChaineConnexion).Supprimer(ID_typeEvenement); } + } +} diff --git a/ProjetTheAlone/Model/G_T_typePlat.cs b/ProjetTheAlone/Model/G_T_typePlat.cs new file mode 100644 index 0000000..230dd0c --- /dev/null +++ b/ProjetTheAlone/Model/G_T_typePlat.cs @@ -0,0 +1,35 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using ProjetTheAlone.Classes; +using ProjetTheAlone.Acces; +#endregion + +namespace ProjetTheAlone.Gestion +{ + /// + /// Couche intermédiaire de gestion (Business Layer) + /// + public class G_T_typePlat : G_Base + { + #region Constructeurs + public G_T_typePlat() + : base() + { } + public G_T_typePlat(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(string TP_nom) + { return new A_T_typePlat(ChaineConnexion).Ajouter(TP_nom); } + public int Modifier(int ID_typePlat, string TP_nom) + { return new A_T_typePlat(ChaineConnexion).Modifier(ID_typePlat, TP_nom); } + public List Lire(string Index) + { return new A_T_typePlat(ChaineConnexion).Lire(Index); } + public C_T_typePlat Lire_ID(int ID_typePlat) + { return new A_T_typePlat(ChaineConnexion).Lire_ID(ID_typePlat); } + public int Supprimer(int ID_typePlat) + { return new A_T_typePlat(ChaineConnexion).Supprimer(ID_typePlat); } + } +} diff --git a/ProjetTheAlone/Model/G_T_typeRepa.cs b/ProjetTheAlone/Model/G_T_typeRepa.cs new file mode 100644 index 0000000..084e1f8 --- /dev/null +++ b/ProjetTheAlone/Model/G_T_typeRepa.cs @@ -0,0 +1,35 @@ +#region Ressources extérieures +using System; +using System.Collections.Generic; +using System.Text; +using ProjetTheAlone.Classes; +using ProjetTheAlone.Acces; +#endregion + +namespace ProjetTheAlone.Gestion +{ + /// + /// Couche intermédiaire de gestion (Business Layer) + /// + public class G_T_typeRepa : G_Base + { + #region Constructeurs + public G_T_typeRepa() + : base() + { } + public G_T_typeRepa(string sChaineConnexion) + : base(sChaineConnexion) + { } + #endregion + public int Ajouter(string TR_nom) + { return new A_T_typeRepa(ChaineConnexion).Ajouter(TR_nom); } + public int Modifier(int ID_typeRepa, string TR_nom) + { return new A_T_typeRepa(ChaineConnexion).Modifier(ID_typeRepa, TR_nom); } + public List Lire(string Index) + { return new A_T_typeRepa(ChaineConnexion).Lire(Index); } + public C_T_typeRepa Lire_ID(int ID_typeRepa) + { return new A_T_typeRepa(ChaineConnexion).Lire_ID(ID_typeRepa); } + public int Supprimer(int ID_typeRepa) + { return new A_T_typeRepa(ChaineConnexion).Supprimer(ID_typeRepa); } + } +} diff --git a/ProjetTheAlone/Model/P_T_beneficiaire.sql b/ProjetTheAlone/Model/P_T_beneficiaire.sql new file mode 100644 index 0000000..4ea8902 --- /dev/null +++ b/ProjetTheAlone/Model/P_T_beneficiaire.sql @@ -0,0 +1,56 @@ +CREATE PROCEDURE AjouterT_beneficiaire + @ID_beneficiaire int OUTPUT, + @B_nom varchar(50), + @B_prenom varchar(50), + @B_anniversaire datetime, + @B_img nchar(10) +AS + INSERT INTO T_beneficiaire(B_nom,B_prenom,B_anniversaire,B_img) + VALUES(@B_nom,@B_prenom,@B_anniversaire,@B_img) + SET @ID_beneficiaire=@@IDENTITY +RETURN +GO +CREATE PROCEDURE ModifierT_beneficiaire + @ID_beneficiaire int, + @B_nom varchar(50), + @B_prenom varchar(50), + @B_anniversaire datetime, + @B_img nchar(10) +AS + IF(@ID_beneficiaire IS NULL OR @ID_beneficiaire=0) + RAISERROR('Identifiant requis !',16,1) + ELSE UPDATE T_beneficiaire + SET B_nom=@B_nom,B_prenom=@B_prenom,B_anniversaire=@B_anniversaire,B_img=@B_img + WHERE ID_beneficiaire=@ID_beneficiaire +RETURN +GO +CREATE PROCEDURE SelectionnerT_beneficiaire + @Index VARCHAR(10) +AS + IF(@Index='B_nom') SELECT * FROM T_beneficiaire ORDER BY B_nom + ELSE IF(@Index='B_prenom') SELECT * FROM T_beneficiaire ORDER BY B_prenom + ELSE IF(@Index='B_anniversaire') SELECT * FROM T_beneficiaire ORDER BY B_anniversaire + ELSE IF(@Index='B_img') SELECT * FROM T_beneficiaire ORDER BY B_img + ELSE SELECT * FROM T_beneficiaire ORDER BY ID_beneficiaire +RETURN +GO +CREATE PROCEDURE SelectionnerT_beneficiaire_ID + @ID_beneficiaire int +AS + IF(@ID_beneficiaire IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + SELECT ID_beneficiaire,B_nom,B_prenom,B_anniversaire,B_img + FROM T_beneficiaire + WHERE @ID_beneficiaire=ID_beneficiaire +RETURN +GO +CREATE PROCEDURE SupprimerT_beneficiaire + @ID_beneficiaire int +AS + IF(@ID_beneficiaire IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + DELETE FROM T_beneficiaire WHERE @ID_beneficiaire=ID_beneficiaire +RETURN +GO diff --git a/ProjetTheAlone/Model/P_T_equipe.sql b/ProjetTheAlone/Model/P_T_equipe.sql new file mode 100644 index 0000000..9113db8 --- /dev/null +++ b/ProjetTheAlone/Model/P_T_equipe.sql @@ -0,0 +1,53 @@ +CREATE PROCEDURE AjouterT_equipe + @ID_equipe int OUTPUT, + @E_nom nchar(10), + @E_point nchar(10), + @ID_evenement int +AS + INSERT INTO T_equipe(E_nom,E_point,ID_evenement) + VALUES(@E_nom,@E_point,@ID_evenement) + SET @ID_equipe=@@IDENTITY +RETURN +GO +CREATE PROCEDURE ModifierT_equipe + @ID_equipe int, + @E_nom nchar(10), + @E_point nchar(10), + @ID_evenement int +AS + IF(@ID_equipe IS NULL OR @ID_equipe=0) + RAISERROR('Identifiant requis !',16,1) + ELSE UPDATE T_equipe + SET E_nom=@E_nom,E_point=@E_point,ID_evenement=@ID_evenement + WHERE ID_equipe=@ID_equipe +RETURN +GO +CREATE PROCEDURE SelectionnerT_equipe + @Index VARCHAR(10) +AS + IF(@Index='E_nom') SELECT * FROM T_equipe ORDER BY E_nom + ELSE IF(@Index='E_point') SELECT * FROM T_equipe ORDER BY E_point + ELSE IF(@Index='ID_evenement') SELECT * FROM T_equipe ORDER BY ID_evenement + ELSE SELECT * FROM T_equipe ORDER BY ID_equipe +RETURN +GO +CREATE PROCEDURE SelectionnerT_equipe_ID + @ID_equipe int +AS + IF(@ID_equipe IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + SELECT ID_equipe,E_nom,E_point,ID_evenement + FROM T_equipe + WHERE @ID_equipe=ID_equipe +RETURN +GO +CREATE PROCEDURE SupprimerT_equipe + @ID_equipe int +AS + IF(@ID_equipe IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + DELETE FROM T_equipe WHERE @ID_equipe=ID_equipe +RETURN +GO diff --git a/ProjetTheAlone/Model/P_T_event.sql b/ProjetTheAlone/Model/P_T_event.sql new file mode 100644 index 0000000..b1d6b06 --- /dev/null +++ b/ProjetTheAlone/Model/P_T_event.sql @@ -0,0 +1,59 @@ +CREATE PROCEDURE AjouterT_event + @ID_event int OUTPUT, + @E_date datetime, + @E_duree datetime, + @ID_typeEvenement int, + @E_description text, + @ID_lieu int +AS + INSERT INTO T_event(E_date,E_duree,ID_typeEvenement,E_description,ID_lieu) + VALUES(@E_date,@E_duree,@ID_typeEvenement,@E_description,@ID_lieu) + SET @ID_event=@@IDENTITY +RETURN +GO +CREATE PROCEDURE ModifierT_event + @ID_event int, + @E_date datetime, + @E_duree datetime, + @ID_typeEvenement int, + @E_description text, + @ID_lieu int +AS + IF(@ID_event IS NULL OR @ID_event=0) + RAISERROR('Identifiant requis !',16,1) + ELSE UPDATE T_event + SET E_date=@E_date,E_duree=@E_duree,ID_typeEvenement=@ID_typeEvenement,E_description=@E_description,ID_lieu=@ID_lieu + WHERE ID_event=@ID_event +RETURN +GO +CREATE PROCEDURE SelectionnerT_event + @Index VARCHAR(10) +AS + IF(@Index='E_date') SELECT * FROM T_event ORDER BY E_date + ELSE IF(@Index='E_duree') SELECT * FROM T_event ORDER BY E_duree + ELSE IF(@Index='ID_typeEvenement') SELECT * FROM T_event ORDER BY ID_typeEvenement + ELSE IF(@Index='E_description') SELECT * FROM T_event ORDER BY E_description + ELSE IF(@Index='ID_lieu') SELECT * FROM T_event ORDER BY ID_lieu + ELSE SELECT * FROM T_event ORDER BY ID_event +RETURN +GO +CREATE PROCEDURE SelectionnerT_event_ID + @ID_event int +AS + IF(@ID_event IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + SELECT ID_event,E_date,E_duree,ID_typeEvenement,E_description,ID_lieu + FROM T_event + WHERE @ID_event=ID_event +RETURN +GO +CREATE PROCEDURE SupprimerT_event + @ID_event int +AS + IF(@ID_event IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + DELETE FROM T_event WHERE @ID_event=ID_event +RETURN +GO diff --git a/ProjetTheAlone/Model/P_T_lieu.sql b/ProjetTheAlone/Model/P_T_lieu.sql new file mode 100644 index 0000000..5d52264 --- /dev/null +++ b/ProjetTheAlone/Model/P_T_lieu.sql @@ -0,0 +1,47 @@ +CREATE PROCEDURE AjouterT_lieu + @ID_lieu int OUTPUT, + @L_nom text +AS + INSERT INTO T_lieu(L_nom) + VALUES(@L_nom) + SET @ID_lieu=@@IDENTITY +RETURN +GO +CREATE PROCEDURE ModifierT_lieu + @ID_lieu int, + @L_nom text +AS + IF(@ID_lieu IS NULL OR @ID_lieu=0) + RAISERROR('Identifiant requis !',16,1) + ELSE UPDATE T_lieu + SET L_nom=@L_nom + WHERE ID_lieu=@ID_lieu +RETURN +GO +CREATE PROCEDURE SelectionnerT_lieu + @Index VARCHAR(10) +AS + IF(@Index='L_nom') SELECT * FROM T_lieu ORDER BY L_nom + ELSE SELECT * FROM T_lieu ORDER BY ID_lieu +RETURN +GO +CREATE PROCEDURE SelectionnerT_lieu_ID + @ID_lieu int +AS + IF(@ID_lieu IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + SELECT ID_lieu,L_nom + FROM T_lieu + WHERE @ID_lieu=ID_lieu +RETURN +GO +CREATE PROCEDURE SupprimerT_lieu + @ID_lieu int +AS + IF(@ID_lieu IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + DELETE FROM T_lieu WHERE @ID_lieu=ID_lieu +RETURN +GO diff --git a/ProjetTheAlone/Model/P_T_listParticipant.sql b/ProjetTheAlone/Model/P_T_listParticipant.sql new file mode 100644 index 0000000..c040759 --- /dev/null +++ b/ProjetTheAlone/Model/P_T_listParticipant.sql @@ -0,0 +1,50 @@ +CREATE PROCEDURE AjouterT_listParticipant + @ID_LP int OUTPUT, + @ID_equipe int, + @ID_benificiaire int +AS + INSERT INTO T_listParticipant(ID_equipe,ID_benificiaire) + VALUES(@ID_equipe,@ID_benificiaire) + SET @ID_LP=@@IDENTITY +RETURN +GO +CREATE PROCEDURE ModifierT_listParticipant + @ID_LP int, + @ID_equipe int, + @ID_benificiaire int +AS + IF(@ID_LP IS NULL OR @ID_LP=0) + RAISERROR('Identifiant requis !',16,1) + ELSE UPDATE T_listParticipant + SET ID_equipe=@ID_equipe,ID_benificiaire=@ID_benificiaire + WHERE ID_LP=@ID_LP +RETURN +GO +CREATE PROCEDURE SelectionnerT_listParticipant + @Index VARCHAR(10) +AS + IF(@Index='ID_equipe') SELECT * FROM T_listParticipant ORDER BY ID_equipe + ELSE IF(@Index='ID_benificiaire') SELECT * FROM T_listParticipant ORDER BY ID_benificiaire + ELSE SELECT * FROM T_listParticipant ORDER BY ID_LP +RETURN +GO +CREATE PROCEDURE SelectionnerT_listParticipant_ID + @ID_LP int +AS + IF(@ID_LP IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + SELECT ID_LP,ID_equipe,ID_benificiaire + FROM T_listParticipant + WHERE @ID_LP=ID_LP +RETURN +GO +CREATE PROCEDURE SupprimerT_listParticipant + @ID_LP int +AS + IF(@ID_LP IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + DELETE FROM T_listParticipant WHERE @ID_LP=ID_LP +RETURN +GO diff --git a/ProjetTheAlone/Model/P_T_listPlat.sql b/ProjetTheAlone/Model/P_T_listPlat.sql new file mode 100644 index 0000000..1ffaf5e --- /dev/null +++ b/ProjetTheAlone/Model/P_T_listPlat.sql @@ -0,0 +1,50 @@ +CREATE PROCEDURE AjouterT_listPlat + @ID_listPlat int OUTPUT, + @ID_repa int, + @ID_plat int +AS + INSERT INTO T_listPlat(ID_repa,ID_plat) + VALUES(@ID_repa,@ID_plat) + SET @ID_listPlat=@@IDENTITY +RETURN +GO +CREATE PROCEDURE ModifierT_listPlat + @ID_listPlat int, + @ID_repa int, + @ID_plat int +AS + IF(@ID_listPlat IS NULL OR @ID_listPlat=0) + RAISERROR('Identifiant requis !',16,1) + ELSE UPDATE T_listPlat + SET ID_repa=@ID_repa,ID_plat=@ID_plat + WHERE ID_listPlat=@ID_listPlat +RETURN +GO +CREATE PROCEDURE SelectionnerT_listPlat + @Index VARCHAR(10) +AS + IF(@Index='ID_repa') SELECT * FROM T_listPlat ORDER BY ID_repa + ELSE IF(@Index='ID_plat') SELECT * FROM T_listPlat ORDER BY ID_plat + ELSE SELECT * FROM T_listPlat ORDER BY ID_listPlat +RETURN +GO +CREATE PROCEDURE SelectionnerT_listPlat_ID + @ID_listPlat int +AS + IF(@ID_listPlat IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + SELECT ID_listPlat,ID_repa,ID_plat + FROM T_listPlat + WHERE @ID_listPlat=ID_listPlat +RETURN +GO +CREATE PROCEDURE SupprimerT_listPlat + @ID_listPlat int +AS + IF(@ID_listPlat IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + DELETE FROM T_listPlat WHERE @ID_listPlat=ID_listPlat +RETURN +GO diff --git a/ProjetTheAlone/Model/P_T_plat.sql b/ProjetTheAlone/Model/P_T_plat.sql new file mode 100644 index 0000000..df9b496 --- /dev/null +++ b/ProjetTheAlone/Model/P_T_plat.sql @@ -0,0 +1,53 @@ +CREATE PROCEDURE AjouterT_plat + @ID_plat int OUTPUT, + @P_nom int, + @P_img int, + @ID_typePlat int +AS + INSERT INTO T_plat(P_nom,P_img,ID_typePlat) + VALUES(@P_nom,@P_img,@ID_typePlat) + SET @ID_plat=@@IDENTITY +RETURN +GO +CREATE PROCEDURE ModifierT_plat + @ID_plat int, + @P_nom int, + @P_img int, + @ID_typePlat int +AS + IF(@ID_plat IS NULL OR @ID_plat=0) + RAISERROR('Identifiant requis !',16,1) + ELSE UPDATE T_plat + SET P_nom=@P_nom,P_img=@P_img,ID_typePlat=@ID_typePlat + WHERE ID_plat=@ID_plat +RETURN +GO +CREATE PROCEDURE SelectionnerT_plat + @Index VARCHAR(10) +AS + IF(@Index='P_nom') SELECT * FROM T_plat ORDER BY P_nom + ELSE IF(@Index='P_img') SELECT * FROM T_plat ORDER BY P_img + ELSE IF(@Index='ID_typePlat') SELECT * FROM T_plat ORDER BY ID_typePlat + ELSE SELECT * FROM T_plat ORDER BY ID_plat +RETURN +GO +CREATE PROCEDURE SelectionnerT_plat_ID + @ID_plat int +AS + IF(@ID_plat IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + SELECT ID_plat,P_nom,P_img,ID_typePlat + FROM T_plat + WHERE @ID_plat=ID_plat +RETURN +GO +CREATE PROCEDURE SupprimerT_plat + @ID_plat int +AS + IF(@ID_plat IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + DELETE FROM T_plat WHERE @ID_plat=ID_plat +RETURN +GO diff --git a/ProjetTheAlone/Model/P_T_repa.sql b/ProjetTheAlone/Model/P_T_repa.sql new file mode 100644 index 0000000..0dc3320 --- /dev/null +++ b/ProjetTheAlone/Model/P_T_repa.sql @@ -0,0 +1,50 @@ +CREATE PROCEDURE AjouterT_repa + @ID_repa int OUTPUT, + @ID_listPlat int, + @ID_typeRepa int +AS + INSERT INTO T_repa(ID_listPlat,ID_typeRepa) + VALUES(@ID_listPlat,@ID_typeRepa) + SET @ID_repa=@@IDENTITY +RETURN +GO +CREATE PROCEDURE ModifierT_repa + @ID_repa int, + @ID_listPlat int, + @ID_typeRepa int +AS + IF(@ID_repa IS NULL OR @ID_repa=0) + RAISERROR('Identifiant requis !',16,1) + ELSE UPDATE T_repa + SET ID_listPlat=@ID_listPlat,ID_typeRepa=@ID_typeRepa + WHERE ID_repa=@ID_repa +RETURN +GO +CREATE PROCEDURE SelectionnerT_repa + @Index VARCHAR(10) +AS + IF(@Index='ID_listPlat') SELECT * FROM T_repa ORDER BY ID_listPlat + ELSE IF(@Index='ID_typeRepa') SELECT * FROM T_repa ORDER BY ID_typeRepa + ELSE SELECT * FROM T_repa ORDER BY ID_repa +RETURN +GO +CREATE PROCEDURE SelectionnerT_repa_ID + @ID_repa int +AS + IF(@ID_repa IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + SELECT ID_repa,ID_listPlat,ID_typeRepa + FROM T_repa + WHERE @ID_repa=ID_repa +RETURN +GO +CREATE PROCEDURE SupprimerT_repa + @ID_repa int +AS + IF(@ID_repa IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + DELETE FROM T_repa WHERE @ID_repa=ID_repa +RETURN +GO diff --git a/ProjetTheAlone/Model/P_T_typeEvenement.sql b/ProjetTheAlone/Model/P_T_typeEvenement.sql new file mode 100644 index 0000000..f46b1ca --- /dev/null +++ b/ProjetTheAlone/Model/P_T_typeEvenement.sql @@ -0,0 +1,47 @@ +CREATE PROCEDURE AjouterT_typeEvenement + @ID_typeEvenement int OUTPUT, + @TE_nom text +AS + INSERT INTO T_typeEvenement(TE_nom) + VALUES(@TE_nom) + SET @ID_typeEvenement=@@IDENTITY +RETURN +GO +CREATE PROCEDURE ModifierT_typeEvenement + @ID_typeEvenement int, + @TE_nom text +AS + IF(@ID_typeEvenement IS NULL OR @ID_typeEvenement=0) + RAISERROR('Identifiant requis !',16,1) + ELSE UPDATE T_typeEvenement + SET TE_nom=@TE_nom + WHERE ID_typeEvenement=@ID_typeEvenement +RETURN +GO +CREATE PROCEDURE SelectionnerT_typeEvenement + @Index VARCHAR(10) +AS + IF(@Index='TE_nom') SELECT * FROM T_typeEvenement ORDER BY TE_nom + ELSE SELECT * FROM T_typeEvenement ORDER BY ID_typeEvenement +RETURN +GO +CREATE PROCEDURE SelectionnerT_typeEvenement_ID + @ID_typeEvenement int +AS + IF(@ID_typeEvenement IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + SELECT ID_typeEvenement,TE_nom + FROM T_typeEvenement + WHERE @ID_typeEvenement=ID_typeEvenement +RETURN +GO +CREATE PROCEDURE SupprimerT_typeEvenement + @ID_typeEvenement int +AS + IF(@ID_typeEvenement IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + DELETE FROM T_typeEvenement WHERE @ID_typeEvenement=ID_typeEvenement +RETURN +GO diff --git a/ProjetTheAlone/Model/P_T_typePlat.sql b/ProjetTheAlone/Model/P_T_typePlat.sql new file mode 100644 index 0000000..33ebc40 --- /dev/null +++ b/ProjetTheAlone/Model/P_T_typePlat.sql @@ -0,0 +1,48 @@ +CREATE PROCEDURE AjouterT_typePlat + @ID_typePlat int, + @TP_nom varchar(50) +AS + IF EXISTS(SELECT * FROM T_typePlat WHERE ID_typePlat=@ID_typePlat) + RAISERROR('Clé primaire existant !',16,1) + ELSE INSERT INTO T_typePlat(ID_typePlat,TP_nom) + VALUES(@ID_typePlat,@TP_nom) +RETURN +GO +CREATE PROCEDURE ModifierT_typePlat + @ID_typePlat int, + @TP_nom varchar(50) +AS + IF(@ID_typePlat IS NULL OR @ID_typePlat=0) + RAISERROR('Identifiant requis !',16,1) + ELSE UPDATE T_typePlat + SET TP_nom=@TP_nom + WHERE ID_typePlat=@ID_typePlat +RETURN +GO +CREATE PROCEDURE SelectionnerT_typePlat + @Index VARCHAR(10) +AS + IF(@Index='TP_nom') SELECT * FROM T_typePlat ORDER BY TP_nom + ELSE SELECT * FROM T_typePlat ORDER BY ID_typePlat +RETURN +GO +CREATE PROCEDURE SelectionnerT_typePlat_ID + @ID_typePlat int +AS + IF(@ID_typePlat IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + SELECT ID_typePlat,TP_nom + FROM T_typePlat + WHERE @ID_typePlat=ID_typePlat +RETURN +GO +CREATE PROCEDURE SupprimerT_typePlat + @ID_typePlat int +AS + IF(@ID_typePlat IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + DELETE FROM T_typePlat WHERE @ID_typePlat=ID_typePlat +RETURN +GO diff --git a/ProjetTheAlone/Model/P_T_typeRepa.sql b/ProjetTheAlone/Model/P_T_typeRepa.sql new file mode 100644 index 0000000..0c26e07 --- /dev/null +++ b/ProjetTheAlone/Model/P_T_typeRepa.sql @@ -0,0 +1,47 @@ +CREATE PROCEDURE AjouterT_typeRepa + @ID_typeRepa int OUTPUT, + @TR_nom varchar(50) +AS + INSERT INTO T_typeRepa(TR_nom) + VALUES(@TR_nom) + SET @ID_typeRepa=@@IDENTITY +RETURN +GO +CREATE PROCEDURE ModifierT_typeRepa + @ID_typeRepa int, + @TR_nom varchar(50) +AS + IF(@ID_typeRepa IS NULL OR @ID_typeRepa=0) + RAISERROR('Identifiant requis !',16,1) + ELSE UPDATE T_typeRepa + SET TR_nom=@TR_nom + WHERE ID_typeRepa=@ID_typeRepa +RETURN +GO +CREATE PROCEDURE SelectionnerT_typeRepa + @Index VARCHAR(10) +AS + IF(@Index='TR_nom') SELECT * FROM T_typeRepa ORDER BY TR_nom + ELSE SELECT * FROM T_typeRepa ORDER BY ID_typeRepa +RETURN +GO +CREATE PROCEDURE SelectionnerT_typeRepa_ID + @ID_typeRepa int +AS + IF(@ID_typeRepa IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + SELECT ID_typeRepa,TR_nom + FROM T_typeRepa + WHERE @ID_typeRepa=ID_typeRepa +RETURN +GO +CREATE PROCEDURE SupprimerT_typeRepa + @ID_typeRepa int +AS + IF(@ID_typeRepa IS NULL) + RAISERROR('Identifiant requis !',16,1) + ELSE + DELETE FROM T_typeRepa WHERE @ID_typeRepa=ID_typeRepa +RETURN +GO diff --git a/ProjetTheAlone/Model/RepaModel.cs b/ProjetTheAlone/Model/RepaModel.cs new file mode 100644 index 0000000..cb75244 --- /dev/null +++ b/ProjetTheAlone/Model/RepaModel.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using ProjetTheAlone.Classes; +using System.Collections.ObjectModel; + +namespace ProjetTheAlone.Model +{ + public class RepaModel : INotifyPropertyChanged + { + private ObservableCollection listPlat = new ObservableCollection(); + + public ObservableCollection ListPlat { get => listPlat; set { listPlat = value; OnPropertyChanged("ListPlat"); } } + + public event PropertyChangedEventHandler PropertyChanged; + protected void OnPropertyChanged(string name) + { + PropertyChangedEventHandler handler = PropertyChanged; + if (handler != null) + { + handler(this, new PropertyChangedEventArgs(name)); + } + } + public RepaModel() + { + + } + } +} diff --git a/ProjetTheAlone/ProjetTheAlone.csproj b/ProjetTheAlone/ProjetTheAlone.csproj index c136add..68bf636 100644 --- a/ProjetTheAlone/ProjetTheAlone.csproj +++ b/ProjetTheAlone/ProjetTheAlone.csproj @@ -66,6 +66,60 @@ MSBuild:Compile Designer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EventFutur.xaml + + + EventPasse.xaml + + + Plat.xaml + + + Repa.xaml + + + + DashBoard.xaml + MSBuild:Compile Designer @@ -78,6 +132,26 @@ MainWindow.xaml Code + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + @@ -106,5 +180,11 @@ + + + + + + \ No newline at end of file diff --git a/ProjetTheAlone/UserControlDIY/EventFutur.xaml b/ProjetTheAlone/UserControlDIY/EventFutur.xaml new file mode 100644 index 0000000..1ede8bc --- /dev/null +++ b/ProjetTheAlone/UserControlDIY/EventFutur.xaml @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/ProjetTheAlone/UserControlDIY/EventFutur.xaml.cs b/ProjetTheAlone/UserControlDIY/EventFutur.xaml.cs new file mode 100644 index 0000000..cea0ae4 --- /dev/null +++ b/ProjetTheAlone/UserControlDIY/EventFutur.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace ProjetTheAlone.UserControlDIY +{ + /// + /// Interaction logic for EventFutur.xaml + /// + public partial class EventFutur : UserControl + { + public EventFutur() + { + InitializeComponent(); + } + } +} diff --git a/ProjetTheAlone/UserControlDIY/EventPasse.xaml b/ProjetTheAlone/UserControlDIY/EventPasse.xaml new file mode 100644 index 0000000..73cdd06 --- /dev/null +++ b/ProjetTheAlone/UserControlDIY/EventPasse.xaml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/ProjetTheAlone/UserControlDIY/EventPasse.xaml.cs b/ProjetTheAlone/UserControlDIY/EventPasse.xaml.cs new file mode 100644 index 0000000..64aa177 --- /dev/null +++ b/ProjetTheAlone/UserControlDIY/EventPasse.xaml.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using ProjetTheAlone.Model; + +namespace ProjetTheAlone.UserControlDIY +{ + /// + /// Interaction logic for EventPasse.xaml + /// + public partial class EventPasse : UserControl + { + public static readonly DependencyProperty ClassementProperty = DependencyProperty.Register("Classement", typeof(ObservableCollection), typeof(EventPasse)); + + public ObservableCollection Classement + { + get + { + var val = GetValue(ClassementProperty) as ObservableCollection; + return val; + } + set + { + SetValue(ClassementProperty, value); + } + } + public EventPasse() + { + InitializeComponent(); + GridPrinc.DataContext = this; + } + } + public class DebugDummyConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + Debugger.Break(); + return value; + } + + public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + Debugger.Break(); + return value; + } + } +} diff --git a/ProjetTheAlone/UserControlDIY/Plat.xaml b/ProjetTheAlone/UserControlDIY/Plat.xaml new file mode 100644 index 0000000..5478df2 --- /dev/null +++ b/ProjetTheAlone/UserControlDIY/Plat.xaml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + diff --git a/ProjetTheAlone/UserControlDIY/Plat.xaml.cs b/ProjetTheAlone/UserControlDIY/Plat.xaml.cs new file mode 100644 index 0000000..145a50e --- /dev/null +++ b/ProjetTheAlone/UserControlDIY/Plat.xaml.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using ProjetTheAlone.Classes; + +namespace ProjetTheAlone.UserControlDIY +{ + /// + /// Interaction logic for Plat.xaml + /// + public partial class Plat : UserControl + { + public C_T_plat PlatV { get { return this.DataContext as C_T_plat; } } + public Plat() + { + InitializeComponent(); + + this.DataContextChanged += new DependencyPropertyChangedEventHandler((o, t) => this.UpdateLayout()); + GridPrinc.DataContext = this ; + } + + } +} diff --git a/ProjetTheAlone/UserControlDIY/Repa.xaml b/ProjetTheAlone/UserControlDIY/Repa.xaml new file mode 100644 index 0000000..75dca68 --- /dev/null +++ b/ProjetTheAlone/UserControlDIY/Repa.xaml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + diff --git a/ProjetTheAlone/UserControlDIY/Repa.xaml.cs b/ProjetTheAlone/UserControlDIY/Repa.xaml.cs new file mode 100644 index 0000000..5c8346f --- /dev/null +++ b/ProjetTheAlone/UserControlDIY/Repa.xaml.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using ProjetTheAlone.Classes; +using ProjetTheAlone.Model; + +namespace ProjetTheAlone.UserControlDIY +{ + /// + /// Interaction logic for Repa.xaml + /// + public partial class Repa : UserControl + { + + public ObservableCollection ListPlat + { + get + { + return this.DataContext as ObservableCollection; + } + } + + public Repa() + { + InitializeComponent(); + } + } +} diff --git a/ProjetTheAlone/View/DashBoard.xaml b/ProjetTheAlone/View/DashBoard.xaml new file mode 100644 index 0000000..e9b2610 --- /dev/null +++ b/ProjetTheAlone/View/DashBoard.xaml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ProjetTheAlone/View/DashBoard.xaml.cs b/ProjetTheAlone/View/DashBoard.xaml.cs new file mode 100644 index 0000000..75fcab5 --- /dev/null +++ b/ProjetTheAlone/View/DashBoard.xaml.cs @@ -0,0 +1,92 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; +using ProjetTheAlone.Model; +using ProjetTheAlone.Classes; + +namespace ProjetTheAlone.View +{ + /// + /// Interaction logic for DashBoard.xaml + /// + /// + + public partial class DashBoard : Window + { + ObservableCollection cl = new ObservableCollection(); + RepaModel rm = new RepaModel(); + public ObservableCollection Cl + { + get + { + if (cl.Count <= 0) + { + cl.Add("1) Minou"); + cl.Add("2) Minette"); + cl.Add("3) Miaw"); + cl.Add("4) Chat"); + } + return cl; + } + set + { + cl = value; + } + } + + public EventPasseModel Epm { get => epm; set => epm = value; } + internal RepaModel Rm { get => rm; set => rm = value; } + + ProjetTheAlone.Model.EventPasseModel epm; + public DashBoard() + { + InitializeComponent(); + Epm = new ProjetTheAlone.Model.EventPasseModel(Cl); + EventPasse2.DataContext = EventPasse1.DataContext = Epm; + Epm.Classement = Cl; + + FileStream fs = new System.IO.FileStream(@"C:\Users\adrie\Nextcloud\ecole\3IS\POO\ProjetTheAlone\ProjetTheAlone\img\desert.jpg", FileMode.Open, FileAccess.Read); + BinaryReader br = new BinaryReader(fs); + byte[] result = br.ReadBytes((int)fs.Length); + br.Close(); + fs.Close(); + Rm.ListPlat.Add(new C_T_plat("Desert", result, null)); + Rm.ListPlat.Add(new C_T_plat("Desert", result, null)); + Rm.ListPlat.Add(new C_T_plat("Desert", result, null)); + Rm.ListPlat.Add(new C_T_plat("Desert", result, null)); + Console.WriteLine($"~~~~~~{Rm.ListPlat[0].P_nom}~~~~~~"); + + RepasMatin.ItemsSource = Rm.ListPlat; + + + } + } + public class DebugDummyConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + Debugger.Break(); + return value; + } + + public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) + { + Debugger.Break(); + return value; + } + } + +} diff --git a/ProjetTheAlone/ViewModel/Base.cs b/ProjetTheAlone/ViewModel/Base.cs new file mode 100644 index 0000000..6dd8920 --- /dev/null +++ b/ProjetTheAlone/ViewModel/Base.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.ComponentModel; +using System.Windows.Input; + +namespace ProjetTheAlone.ViewModel +{ + public class BasePropriete : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + protected void NotifyPropertyChanged(String propertyName) + { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } + protected bool AssignerChamp(ref T field, T value, string propertyName) + { + if (EqualityComparer.Default.Equals(field, value)) return false; + PropertyChangedEventHandler handler = PropertyChanged; + field = value; + if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName.Substring(4))); + //OnPropertyChanged(); + return true; + } + } + public class BaseCommande : ICommand + { + private Action _Action; + public BaseCommande(Action Action_) + { _Action = Action_; } + public event EventHandler CanExecuteChanged; + public bool CanExecute(object parameter) + { return true; } + public void Execute(object parameter) + { if (_Action != null) _Action(); } + } +} diff --git a/ProjetTheAlone/img/desert.jpg b/ProjetTheAlone/img/desert.jpg new file mode 100644 index 0000000000000000000000000000000000000000..20315ba30470f78d40ec62fa22565144bd304440 GIT binary patch literal 13505 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 literal 0 HcmV?d00001 diff --git a/ProjetTheAlone/img/plat.jpg b/ProjetTheAlone/img/plat.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b77a886dc59e80bd42de391ede711c55fe146c53 GIT binary patch literal 23302 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%0ASh9(xazu>OU&05B!B8Ki-U! z?|?B^903r(A9MczXQ^c(jBN}PO(G4_a{TpTKcvAV3ranW8CC`Gf6N7t?~yB zPx7g50Q(f2e-i%yIzUkSLAbqR8jz8ORwREH1B!mDGK7R3!0+4B+aK1M3aQ8{IosRo zNv?m#)xZ69ANmVa^ed?pu&>!eL{W#C5hJcP070!}{{UE{wi}PaniDhatpsOcfE5_@`WmMlj7GxSDyQWqKTs=D+>&lGe~G`5 zs`i}ec3J-bo@4n6hKF+>QqgUsERSxaF^eR3=qi+c6trfQ#9P}exI8GxUf%f4Z|Vf9 zIRt~c9-mQ5VgCRh7ykh7kNpHwNe44I2)rX=_663@?zvKhdH(=B)<&W5^2T(zdvr*o zWy+1ceg6QJdTc;>GV%OF`BfWoT)A>s`AT``){}~`Dv~_QS@>zDPj6<@M5;0~*aMON zC)=8d{uXJ!BtA%W-N+*(1#-Qlk2Hhf zUX|xtyFi<^l_wpJNA;y&hI(4X8S;Q7lQ^Hl=h~b(Wz9M+3C9%0atUKH+mKrXfOtLn)p5Q%hY^6p zmLr~-86VQFV0w0{a{vT51Mjc%pe{%fc-IUo8B zM;|gs4Efk#XA%Q)!!Tn8FitxnVckdkzRFxU$ kILF{aespAu>wpjZvy=Y-WvMK{-#Et}YjOEiG)>R{*__BPO#lD@ literal 0 HcmV?d00001