//constructeur du form sans paramètre (Ajout restaurant) public FormRestaurant() { //Initialisation de l'id à -1, textBoxes vides this.restaurantId = -1; InitializeComponent(); //Création d'une listRestaurateurs liant un int et un string (id et nom) List <KeyValuePair <int, string> > listRestaurateurs = new List <KeyValuePair <int, string> >(); String fullName = ""; //Pour chaque restaurateur foreach (Restaurateur r in RestaurateurManager.GetAll()) { //Construction de la chaine nom + prénom fullName = r.nom + " " + r.prenom; //Ajour à la listRestaurateurs de l'id et du fullName listRestaurateurs.Add(new KeyValuePair <int, string>(r.id, fullName)); } //Liaison de la liste déroulante des restaurateurs à la listRestaurateurs comboBoxRestaurateur.DataSource = listRestaurateurs; comboBoxRestaurateur.DisplayMember = "Value"; comboBoxRestaurateur.ValueMember = "Key"; //Liaison de la liste déroulante des types de cuisine comboBoxTypeCuisine.DataSource = TypeCuisineManager.GetAll(); comboBoxTypeCuisine.DisplayMember = "type"; comboBoxTypeCuisine.ValueMember = "id"; //Création d'une listGenres liant un int et un string (id et nom) List <KeyValuePair <int, string> > listGenres = new List <KeyValuePair <int, string> >(); listGenres.Add(new KeyValuePair <int, string>(1, "Restaurant")); listGenres.Add(new KeyValuePair <int, string>(2, "Snack")); //Liaison de la liste déroulante des genres à listGenres comboBoxGenre.DataSource = listGenres; comboBoxGenre.DisplayMember = "Value"; comboBoxGenre.ValueMember = "Key"; }
//Bouton sauver private void buttonTypeCuisine_Click(object sender, EventArgs e) { //Création d'un objet TypeCuisine avec l'id à -1 (création) ou >0 (passé en paramètre) //Les autres propriétés viennent des textBoxes TypeCuisine t = new TypeCuisine(); t.id = this.typeCuisineId; t.type = textBoxTypeCuisine.Text; //si pas de description, remplissage avec un texte prédéfini if (richTextBoxDescType.Text.Length == 0) { t.description = "Aucune description pour ce type de cuisine."; } else { t.description = richTextBoxDescType.Text; } //Si Validate renvoie true, l'objet est valide et peut être transmis à la BU pour traitement if (Validate(t)) { //Si id = -1 alors c'est une création, envoi à la BU (TypeCuisineManager.Create) if (typeCuisineId == -1) { TypeCuisineManager.Create(t); } //Sinon c'est une modification, envoi à la BU (TypeCuisineManager.Update) else { TypeCuisineManager.Update(t); } //Fermeture du form this.Dispose(); } }
//Modifier Type de Cuisine private void buttonModType_Click(object sender, EventArgs e) { int id = (int)dataGridViewTypesCuisine.SelectedRows[0].Cells[0].Value; TypeCuisine typeCuisine = TypeCuisineManager.GetAll().Find(x => x.id == id); if (id > 0) { FormTypeCuisine f = new FormTypeCuisine(typeCuisine); f.ShowDialog(); PopulateGrids(); } }
private bool Validate(TypeCuisine t) { //Initialisation de la couleur des labels à "par défaut" labelTypeCuisine.ForeColor = Color.Empty; labelDescriptionType.ForeColor = Color.Empty; bool valid = true; string message = ""; //Si le nom du type fait moins de 3 if (t.type.Length < 3) { labelTypeCuisine.ForeColor = Color.Red; valid = false; message += "Le nom du type doit au moins faire 3 caractères.\n"; } //Si le nom du type contient autre chose que des caractères et des espaces if (!Regex.IsMatch(t.type, @"^[a-zA-Z ]+$")) { labelTypeCuisine.ForeColor = Color.Red; valid = false; message += "Le nom du type ne doit contenir que des caractères alphabétiques.\n"; } //Si le nom du type existe déjà if (TypeCuisineManager.GetAll().Find(x => x.type == t.type) != null) { //Si c'est un ajout OU que l'id du type modifié est différent de l'id du type existant if ((this.typeCuisineId == -1) || (this.typeCuisineId != TypeCuisineManager.GetAll().Find(x => x.type == t.type).id)) { labelTypeCuisine.ForeColor = Color.Red; valid = false; message += "Le type existe déjà.\n"; } } //Si la description fait moins de 10 (préremplie si vide) if (t.description.Length < 10) { labelDescriptionType.ForeColor = Color.Red; valid = false; message += "La description doit être vide ou faire au moins 10 caractères.\n"; } //Si le TypeCuisine envoyé par le form est invalide if (!valid) { //Affichage du message d'erreur string caption = "Erreur"; MessageBoxButtons buttons = MessageBoxButtons.OK; MessageBoxIcon icon = MessageBoxIcon.Error; MessageBox.Show(message, caption, buttons, icon); } //retourne valid return(valid); }
//Supprimer Type de Cuisine private void buttonDelType_Click(object sender, EventArgs e) { int id = (int)dataGridViewTypesCuisine.SelectedRows[0].Cells[0].Value; //Si aucun restaurant n'est du type à supprimer if (RestaurantManager.GetAll().Where(x => x.idTypeCuisine == id).Count() == 0) { //Demande de confirmation string message = "Voulez-vous vraiment supprimer ce type de cuisine?"; string caption = "Suppression"; MessageBoxButtons buttons = MessageBoxButtons.YesNo; MessageBoxIcon icon = MessageBoxIcon.Warning; DialogResult result; result = MessageBox.Show(message, caption, buttons, icon); //Si oui if (result == System.Windows.Forms.DialogResult.Yes) { //Si suppression ok if (TypeCuisineManager.Delete(id)) { message = "Type de cuisine supprimé!"; buttons = MessageBoxButtons.OK; icon = MessageBoxIcon.Information; } //Sinon else { message = "Erreur lors de la suppression!"; buttons = MessageBoxButtons.OK; icon = MessageBoxIcon.Error; } MessageBox.Show(message, caption, buttons, icon); PopulateGrids(); } } //Sinon, avertissement: on ne peut pas supprimer un type de cuisine lié à au moins un restaurant. else { string caption = "Erreur lors de la suppression"; string message = "Au moins un restaurant est lié à ce type de cuisine, impossible de le supprimer."; MessageBoxButtons buttons = MessageBoxButtons.OK; MessageBoxIcon icon = MessageBoxIcon.Error; MessageBox.Show(message, caption, buttons, icon); } }
private void PopulateGrids() { //Si la connexion à la base de données est possible if (CommonManager.CheckDBConnection()) { #region DataGrid Administrateurs dataGridViewAdministrateurs.DataSource = AdministrateurManager.GetAll(); //Renommage des colonnes affichées dataGridViewAdministrateurs.Columns["nom"].HeaderText = "Nom"; dataGridViewAdministrateurs.Columns["prenom"].HeaderText = "Prénom"; dataGridViewAdministrateurs.Columns["email"].HeaderText = "Email"; dataGridViewAdministrateurs.Columns["phone"].HeaderText = "Téléphone"; //Masquage des colonnes inutiles dataGridViewAdministrateurs.Columns["id"].Visible = false; dataGridViewAdministrateurs.Columns["username"].Visible = false; dataGridViewAdministrateurs.Columns["password"].Visible = false; //si DataGrid vide, désactivation des boutons Supprimer et Modifier if (dataGridViewAdministrateurs.Rows.Count == 0) { buttonDelAdmin.Enabled = buttonModAdmin.Enabled = false; } else { buttonDelAdmin.Enabled = buttonModAdmin.Enabled = true; } #endregion DataGrid Administrateurs #region DataGrid Restaurateurs //DataGrid Restaurateurs dataGridViewRestaurateurs.DataSource = RestaurateurManager.GetAll(); //Renommage des colonnes affichées dataGridViewRestaurateurs.Columns["nom"].HeaderText = "Nom"; dataGridViewRestaurateurs.Columns["prenom"].HeaderText = "Prénom"; dataGridViewRestaurateurs.Columns["email"].HeaderText = "Email"; dataGridViewRestaurateurs.Columns["phone"].HeaderText = "Téléphone"; //Masquage des colonnes inutiles dataGridViewRestaurateurs.Columns["id"].Visible = false; dataGridViewRestaurateurs.Columns["username"].Visible = false; dataGridViewRestaurateurs.Columns["password"].Visible = false; //si DataGrid vide, désactivation des boutons Supprimer, Modifier et Consulter restaurants if (dataGridViewRestaurateurs.Rows.Count == 0) { buttonDelRestaurateur.Enabled = buttonModRestaurateur.Enabled = buttonViewRestaurants.Enabled = false; } else { buttonDelRestaurateur.Enabled = buttonModRestaurateur.Enabled = buttonViewRestaurants.Enabled = true; } #endregion DataGrid Restaurateurs #region DataGrid Utilisateurs //DataGrid Utilisateurs dataGridViewUtilisateurs.DataSource = UtilisateurManager.GetAll(); //Renommage des colonnes affichées dataGridViewUtilisateurs.Columns["nom"].HeaderText = "Nom"; dataGridViewUtilisateurs.Columns["prenom"].HeaderText = "Prénom"; dataGridViewUtilisateurs.Columns["email"].HeaderText = "Email"; dataGridViewUtilisateurs.Columns["phone"].HeaderText = "Téléphone"; //Masquage des colonnes inutiles dataGridViewUtilisateurs.Columns["id"].Visible = false; dataGridViewUtilisateurs.Columns["username"].Visible = false; dataGridViewUtilisateurs.Columns["password"].Visible = false; //Fonctions Ajouter et Modifier désactivées car gérées par l'utilisateur sur le site //Suppression autorisée buttonAddUser.Enabled = buttonModUser.Enabled = false; #endregion DataGrid Utilisateurs #region DataGrid Restaurants //DataGrid Restaurants dataGridViewRestaurants.DataSource = RestaurantManager.GetAll(); //Renommage des colonnes affichées dataGridViewRestaurants.Columns["nom"].HeaderText = "Nom"; dataGridViewRestaurants.Columns["zipCode"].HeaderText = "Code Postal"; dataGridViewRestaurants.Columns["localite"].HeaderText = "Localité"; dataGridViewRestaurants.Columns["premium"].HeaderText = "Premium"; dataGridViewRestaurants.Columns["genre"].HeaderText = "Genre"; dataGridViewRestaurants.Columns["idTypeCuisine"].HeaderText = "Type de cuisine"; //Masquage des colonnes inutiles dataGridViewRestaurants.Columns["id"].Visible = false; dataGridViewRestaurants.Columns["adresse"].Visible = false; dataGridViewRestaurants.Columns["numero"].Visible = false; dataGridViewRestaurants.Columns["description"].Visible = false; dataGridViewRestaurants.Columns["budgetLow"].Visible = false; dataGridViewRestaurants.Columns["budgetHigh"].Visible = false; dataGridViewRestaurants.Columns["horaire"].Visible = false; dataGridViewRestaurants.Columns["genre"].Visible = false; dataGridViewRestaurants.Columns["idRestaurateur"].Visible = false; dataGridViewRestaurants.Columns["idTypeCuisine"].Visible = false; //Si DataGrid vide, désactivation des boutons Supprimer, Modifier et Consulter réservations if (dataGridViewRestaurants.Rows.Count == 0) { buttonDelResto.Enabled = buttonModResto.Enabled = buttonViewReservations.Enabled = false; } else { buttonDelResto.Enabled = buttonModResto.Enabled = buttonViewReservations.Enabled = true; } #endregion DataGrid Restaurants #region DataGrid TypeCuisine //DataGrid TypeCuisine dataGridViewTypesCuisine.DataSource = TypeCuisineManager.GetAll(); //Renommage des colonnes affichées dataGridViewTypesCuisine.Columns["type"].HeaderText = "Type de cuisine"; dataGridViewTypesCuisine.Columns["description"].HeaderText = "Description"; //Masquage des colonnes inutiles dataGridViewTypesCuisine.Columns["id"].Visible = false; //Si DataGrid vide, désactivation des boutons Supprimer et Modifier if (dataGridViewTypesCuisine.Rows.Count == 0) { buttonDelType.Enabled = buttonModType.Enabled = false; } else { buttonDelType.Enabled = buttonModType.Enabled = true; } #endregion DataGrid TypeCuisine } //Sinon else { string message = "Une erreur est survenue lors de la connexion à la base de données, l'application va maintenant se fermer."; string caption = "Erreur"; MessageBoxButtons buttons = MessageBoxButtons.OK; MessageBoxIcon icon = MessageBoxIcon.Error; MessageBox.Show(message, caption, buttons, icon); Application.Exit(); } }
public TypeCuisine GetTypeCuisine(int id) { return(TypeCuisineManager.GetAll().Find(x => x.id == id)); }
public List <TypeCuisine> GetAllTypeCuisine() { return(TypeCuisineManager.GetAll()); }