//Bouton sauver private void saveAdministrateur_Click(object sender, EventArgs e) { //Création d'un objet Administrateur avec l'id à -1 (création) ou >0 (passé en paramètre) //Les autres propriétés viennent des textBoxes Administrateur administrateur = new Administrateur(); administrateur.id = this.administrateurId; administrateur.nom = textBoxNom.Text.ToUpper(); administrateur.prenom = textBoxPrenom.Text; administrateur.username = textBoxUsername.Text.ToLower(); administrateur.password = textBoxPassword.Text; administrateur.email = textBoxEmail.Text.ToLower(); administrateur.phone = textBoxPhone.Text; //Si Validate renvoie true, l'objet est valide et peut être transmis à la BU pour traitement if (Validate(administrateur)) { //Si id = -1 alors c'est une création, envoi à la BU (AdministrateurManager.Create) if (administrateurId == -1) { AdministrateurManager.Create(administrateur); } //Sinon c'est une modification, envoi à la BU (AdministrateurManager.Update) else { AdministrateurManager.Update(administrateur); } //Fermeture du form this.Dispose(); } }
//Clic sur Supprimer dans le Datagrid Administrateurs private void buttonDelAdmin_Click(object sender, EventArgs e) { //Affichage d'une demande de confirmation string message = "Voulez-vous vraiment supprimer cet administrateur?"; 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) { //Obtention de l'id de la ligne sélectionnée int id = (int)dataGridViewAdministrateurs.SelectedRows[0].Cells[0].Value; //Envoi à la couche BU qui retourne un booléen (true: suppression ok, false: erreur lors de la suppression) if (AdministrateurManager.Delete(id)) { message = "Administrateur supprimé!"; buttons = MessageBoxButtons.OK; icon = MessageBoxIcon.Information; } else { message = "Erreur lors de la suppression!"; buttons = MessageBoxButtons.OK; icon = MessageBoxIcon.Error; } //Message de résultat MessageBox.Show(message, caption, buttons, icon); //Rafraichissement des grids PopulateGrids(); } }
//Modifier private void buttonModAdmin_Click(object sender, EventArgs e) { //Obtention de l'id de la ligne sélectionnée int id = (int)dataGridViewAdministrateurs.SelectedRows[0].Cells[0].Value; //Recherche de l'administrateur sur base de l'id Administrateur a = AdministrateurManager.GetAll().Find(x => x.id == id); //Ouverture du form avec passage de l'administrateur sélectionné (textBoxes préremplies) if (a != null) { FormAdministrateur f = new FormAdministrateur(a); f.ShowDialog(); PopulateGrids(); } }
private bool Validate(Restaurateur r) { //Expression régulière pour nom et prénom: caractères maj-min + (- espace '), longueur entre 2 et 30 var nomRegex = new Regex(@"^[-'a-zA-Z ]{2,30}$"); //Expression régulière pour nom d'utilisateur: caractères maj-min uniquement, longueur entre 3 et 30 var usernameRegex = new Regex(@"^[a-zA-Z]{3,30}$"); //Expression régulière pour email: "caractère(s) et/ou tiret(s) et point(s) + @ + caractère(s) et/ou tiret(s) + point + 2-3 caractères var emailRegex = new Regex(@"^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$"); //Expression régulière pour numéro de téléphone: commence par 0 + [1-9] + [0-9] * 7 ou 8 (fixe ou mobile) var phoneRegex = new Regex(@"^0[1-9][0-9]{7,8}$"); //Initialisation de la couleur des labels à "par défaut" labelNom.ForeColor = Color.Empty; labelPrenom.ForeColor = Color.Empty; labelUsername.ForeColor = Color.Empty; labelPassword.ForeColor = Color.Empty; labelEmail.ForeColor = Color.Empty; labelPhone.ForeColor = Color.Empty; bool valid = true; string message = ""; //Si le nom ne correspond pas à l'expression régulière nomRegex if (!nomRegex.IsMatch(r.nom)) { labelNom.ForeColor = Color.Red; valid = false; message += "- Nom invalide\n"; } //Si le prénom ne correspond pas à l'expression régulière nomRegex if (!nomRegex.IsMatch(r.prenom)) { labelPrenom.ForeColor = Color.Red; valid = false; message += "- Prénom invalide\n"; } //Si le nom d'utilisateur ne correspond pas à l'expression régulière usernameRegex if (!usernameRegex.IsMatch(r.username)) { labelUsername.ForeColor = Color.Red; valid = false; message += "- Nom d'utilisateur invalide\n"; } //Si le nom d'utilisateur existe déjà et que c'est une création if (AdministrateurManager.GetAll().Find(x => x.username == r.username) != null && r.id == -1) { labelUsername.ForeColor = Color.Red; valid = false; message += "- Nom d'utilisateur déjà existant\n"; } //Si le mot de passe est plus court que 4 ou plus long que 30 if (r.password.Length < 4 || r.password.Length > 30) { labelPassword.ForeColor = Color.Red; valid = false; message += "- Mot de passe invalide\n"; } //Si l'email ne correspond pas à l'expression régulière usernameRegex if (!emailRegex.IsMatch(r.email)) { labelEmail.ForeColor = Color.Red; valid = false; message += "- Email invalide\n"; } //Si l'email existe déjà et que c'est une création if (AdministrateurManager.GetAll().Find(x => x.email == r.email) != null && r.id == -1) { labelEmail.ForeColor = Color.Red; valid = false; message += "- Email déjà existant\n"; } //Si le numéro de téléphone ne correspond pas à l'expression régulière phoneRegex if (!phoneRegex.IsMatch(r.phone)) { labelPhone.ForeColor = Color.Red; valid = false; message += "- Numéro de téléphone invalide\n"; } //Si le restaurateur 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); }
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(); } }