/// <summary> /// Méthode reliée au bouton "Se connecter" côté admin qui vérifie si l'identifiant et le mdp rentrés par l'utilisateur correspondent à un couple identifiant/mdp dans la database /// </summary> /// <param name="sender">Bouton "Se connecter"</param> /// <param name="e">Evenement Click</param> private void Button_Click_connect_admin(object sender, RoutedEventArgs e) { // récupération des input string id = ID_admin.Text; string mdp = MDP_admin.Password; // sécurité sur le mdp pour éviter le caractère retournant une erreur MySQL (fonction Caractere_interdit ne fonctionne pas sur les passwordBox) if (mdp.Contains('"')) { error_label.Content = "Guillemets (\") interdits"; } else { // sécurité des input if (id.Length > 0 && mdp.Length > 0) // rien de rentré { //Récupération infos dans fichier txt --> chaque index de la liste de liste finale contient un couple identifiant/mdp string line; string infos_in_file = ""; System.IO.StreamReader file = new System.IO.StreamReader("Acces_admin.txt"); while ((line = file.ReadLine()) != null) { infos_in_file += line + '\n'; } file.Close(); string[] temp = infos_in_file.Split('\n'); List <List <string> > liste_infos_in_file = new List <List <string> >(); bool connection_ok = false; for (int i = 0; i < temp.Length; i++) { liste_infos_in_file.Add(temp[i].Split(';').ToList()); if (liste_infos_in_file[i][0] == id && liste_infos_in_file[i][1] == mdp) { connection_ok = true; } } if (connection_ok) { // on navigue vers la page client en conservant l'id Page_Admin page_admin = new Page_Admin(id); this.NavigationService.Navigate(page_admin); } } else { error_label.Content = "Erreur admin non reconnu"; } } }
/// <summary> /// Méthode reliée au bouton "Créer le fournisseur" qui crée un nouveau fournisseur dans la database /// </summary> /// <param name="sender">bouton "Créer le fournisseur"</param> /// <param name="e">Evenement Click</param> private void Creer_Fournisseur_Click(object sender, RoutedEventArgs e) { // récupération des input string nom = textbox_nom.Text; string refe = textbox_ref.Text; string tel = textbox_tel.Text; // sécurité pour les input if (nom == "" || nom.Length > 50) { Erreur_message.Content = "Nom invalide (1-50 caractères)"; } else if (refe == "" || refe.Length > 50) { Erreur_message.Content = "Référence invalide (1-50 caractères)"; } else if (tel == "" || !int.TryParse(tel, out _) || tel.Length > 15) { Erreur_message.Content = "Téléphone invalide (1-15 caractères)"; } else { Erreur_message.Content = ""; // création du fournisseur dans la database à partir des input string query = $"insert into cooking.fournisseur VALUES(\"{refe}\",\"{nom}\",\"{tel}\");"; string ex = Commandes_SQL.Insert_Requete(query); if (ex == $"Duplicate entry '{refe}' for key 'fournisseur.PRIMARY'") // si la ref_fournisseur (clé primaire) existe déjà dans la database.fournisseur { Erreur_message.Content = "Nom déjà utilisé"; } else { // on navigue vers la page Admin Page_Admin page_admin = new Page_Admin(this.id_admin); this.NavigationService.Navigate(page_admin); } } }
/// <summary> /// Méthode reliée au bouton "Créer le produit" qui crée un nouveau produit dans la database /// </summary> /// <param name="sender">Bouton "Créer le produit"</param> /// <param name="e">Evenement Click</param> private void Creer_Produit_Click(object sender, RoutedEventArgs e) { // récupération des input string nom_produit = textbox_nom.Text; string categorie = textbox_categorie.Text; string unite = textbox_unite.Text; string ref_fournisseur = textbox_ref_fournisseur.Text; string stock = textbox_stock.Text; string stock_min = textbox_stock_min.Text; string stock_max = textbox_stock_max.Text; // sécurité pour les input if (nom_produit == "" || nom_produit.Length > 50) { Erreur_message.Content = "Nom invalide (1-50 caractères)"; } else if (categorie == "" || categorie.Length > 50) { Erreur_message.Content = "Categorie invalide (1-50 caractères)"; } else if (unite == "" || unite.Length > 10) { Erreur_message.Content = "Unite invalide (1-10 caractères)"; } else if (ref_fournisseur == "" || ref_fournisseur.Length > 50) { Erreur_message.Content = "Fournisseur invalide (1-50 caractères)"; } else if (stock == "" || !int.TryParse(stock, out _)) { Erreur_message.Content = "Stock invalide"; } else if (stock_min == "" || !int.TryParse(stock_min, out _)) { Erreur_message.Content = "Stock minimal invalide"; } else if (stock_max == "" || !int.TryParse(stock_max, out _) || Convert.ToInt32(stock_max) < Convert.ToInt32(stock_min) || Convert.ToInt32(stock_max) < Convert.ToInt32(stock)) { Erreur_message.Content = "Stock maximal invalide"; } else { Erreur_message.Content = ""; //on vérifie si le fournisseur du produit qu'on veut créer existe dans notre database car Ref_Fournisseur = Foreign key de l'entité produit string query = "select Ref_Fournisseur from cooking.fournisseur;"; List <List <string> > liste_Ref_fournisseur = Commandes_SQL.Select_Requete(query); bool ref_fournisseur_dans_BDD = false; for (int i = 0; i < liste_Ref_fournisseur.Count; i++) { if (liste_Ref_fournisseur[i][0] == ref_fournisseur) { ref_fournisseur_dans_BDD = true; } } if (!ref_fournisseur_dans_BDD) { Erreur_message.Content = "Fournisseur inconnu"; } else { // création du fournisseur dans la database à partir des input query = $"insert into cooking.produit values (\"{nom_produit}\",\"{categorie}\",\"{unite}\",{stock},{stock_min},{stock_max},\"{ref_fournisseur}\")"; string ex = Commandes_SQL.Insert_Requete(query); if (ex == $"Duplicate entry '{nom_produit}' for key 'produit.PRIMARY'") // si le nom_produit (clé primaire) existe déjà dans la database.produit { Erreur_message.Content = "Nom déjà utilisé"; } else { // on navigue vers la page Admin Page_Admin page_admin = new Page_Admin(this.id_admin); this.NavigationService.Navigate(page_admin); } } } }