public Task InitialiserEnvironnementAsync() { Client client = GetClientByIdAsync(1).Result; if (client == null) { string[] territoires = new string[] { "Alberta", "Colombie Britannique", "Île-du-Prince-Édouard", "Manitoba", "Nouveau-Brunswick", "Nouvelle-Écosse", "Nunavut", "Ontario", "Québec", "Saskatchewan", "Terre-Neuve-et-Labrador", "Territoires-du-Nord-Ouest", "Yukon" }; foreach (string t in territoires) { AddTerritoire(new Territoire(t)); } Territoire territoire = GetTerritoireByNomAsync("Québec").Result[0]; ClientPersonne client1 = new ClientPersonne("123456789", "g5l 3x8 rimouski", territoire, "ayman", "chafni"); AddClientPersonneAsync(client1); EmployéRC employérc1 = new EmployéRC("test", "michel", "antoin", "632145789", "g5l 3x8 montréal", 20); AddEmployéRCAsync(employérc1); Technicien technicien = new Technicien("test", "bilal", "rami", "457895123", "g5l 3x8 montréal", 24, territoire); AddTechnicienAsync(technicien); Compte compte1 = new Compte(ModeFacturation.Annuel, client1, employérc1); Compte compte2 = new Compte(ModeFacturation.Mensuel, client1, employérc1); AddCompteAsync(compte1); AddCompteAsync(compte2); } return(new Task(null)); }
//************************************************************************************************** private void btnModifierMateriel_Click(object sender, EventArgs e) { // On récupère Tous les attributs du matériel using (MaterielManager materielManager = new MaterielManager()) { materielSelectionne.TypeMateriel = textBoxTypeMateriel.Text.Trim(); materielSelectionne.NumeroTel = mTxtBoxNumtel.Text.Trim(); materielSelectionne.Imei = textBoxCodeIMEI.Text.Trim(); materielSelectionne.IdGoogle = textBoxIdGoogle.Text.Trim(); // il faut chercher si un technicien a en usage le matériel // si oui et si etatMatériel n'est pas égale à enService il faut // l'enlever de l'affectation du technicien using (TechnicienManager technicienManager = new TechnicienManager()) { Technicien technicien = new Technicien(); technicien.FkIdMateriel = materielSelectionne.IdMateriel; // on recherche le technicien qui possédait le matériel technicien = technicienManager.getTechnicien(technicien); if ((materielSelectionne.EtatMateriel == "enService") && ((string)comBoxEtatMatériel.SelectedItem != "enService")) { // il faut retirer l'affectation du matériel au technicien technicien.FkIdMateriel = 0; technicienManager.ajoutModifTechnicien(ref technicien); } } materielSelectionne.EtatMateriel = comBoxEtatMatériel.SelectedItem.ToString(); materielSelectionne.FkLoginE = UtilisateurConnecte.Login; // On persiste les modifications materielManager.insertUpdateMateriel(ref materielSelectionne); MessageToast.Show("Matériel modifié avec succès"); RafraichirIHM(); } }
private async void LoginButton_Clicked(object sender, EventArgs e) { if (FieldsValidated()) { LoginButton.IsEnabled = false; var admin = new Technicien { Login = TechnicianLoginEntry.Text, MotDePasse = PasswordEntry.Text }; var bytesAdmin = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(admin)); var req = WebRequest.CreateHttp(Constants.VerifyTechnicianLoginURL); req.ContentType = "application/json"; req.Method = "POST"; await req.GetRequestStream().WriteAsync(bytesAdmin, 0, bytesAdmin.Length); var result = new StreamReader(req.GetResponse().GetResponseStream()).ReadToEnd(); if (result.Equals("null")) { await DisplayAlert("Échéc de login", "Votre Login/Mot de passe est incorrect", "Ok"); return; } CurrentTechnician = JsonConvert.DeserializeObject <Technicien>(result); await Navigation.PushAsync(new MainPage(CurrentTechnician)); } else { await DisplayAlert("Erreur", "Verifier les valuers entrées", "Ok"); } }
//************************************************************************************************** private void btnAjouterTechnicien_Click(object sender, EventArgs e) { // créer un technicien et lui affecte les champs remplis Technicien monTechnicien = new Technicien(); if ((textBoxNom.Text != String.Empty) && (textBoxPrenom.Text != String.Empty) && (textBoxLoginT.Text != String.Empty) && (txtBoxMdp.Text != String.Empty)) { using (TechnicienManager technicienManager = new TechnicienManager()) { monTechnicien.Nom = textBoxNom.Text.Trim(); monTechnicien.Prenom = textBoxPrenom.Text.Trim(); monTechnicien.LoginT = textBoxLoginT.Text.Trim(); monTechnicien.PasswdT = Utils.getMd5Hash(txtBoxMdp.Text.Trim()); bool resultat = technicienManager.ajoutModifTechnicien(ref monTechnicien); // On ajoute le technicien en BDD if (resultat) // si l'ajout s'est bien passé { MessageToast.Show("Technicien ajouté avec succès"); } else { MessageToast.Show("Les champs remplis sont incorrectes"); } } } else { MessageBox.Show("Merci de remplir tous les champs"); } }
//***************************************************************************************************************** // pour chaque technicien il faut : // faire un split du string csv représentant un enregistrement technicien // peupler une entité technicien et l'inscrire en BDD // liste des valeurs pour peupler la table des techniciens // les techniciens ne sont pas enregistrés sur l'actice directory // login,mdp,prenom,nom,fk matériel affecté private void peuplerTableTechnicien() { Technicien technicien = new Technicien(); using (TechnicienManager technicienManager = new TechnicienManager()) { // Lire chaque ligne du fichier. // Chaque élément du tableau représente une ligne du fichier String[] tabLines = System.IO.File.ReadAllLines(@"..\..\..\DonneesInitialesBdd\Techniciens.csv", Encoding.GetEncoding("iso-8859-1")); foreach (String line in tabLines) // pour toutes les lignes du jeux d'essais { String[] str = line.Split(';'); // on a choisi # comme séparateur csv if (str[0] != "#") // si oui c'est une ligne de commentaire { technicien.LoginT = str[0]; technicien.PasswdT = Utils.getMd5Hash(str[1]); technicien.Prenom = str[2]; technicien.Nom = str[3]; if (str[4] != "") { technicien.FkIdMateriel = Convert.ToInt32(str[4]); // on pourra affecter d'office un matériel } // On persiste l'entité en BDD technicienManager.ajoutModifTechnicien(ref technicien); } } } }
//*********************************************************************************************** private void dgvTechnicien_CellClick(object sender, DataGridViewCellEventArgs e) { int IdxLigneActuelle = e.RowIndex; Materiel materiel = new Materiel(); viderChamps(); if (IdxLigneActuelle >= 0) { // On récupère le login du technicien de la ligne sélectionnée dans le dgvTechnicien string loginTechnicien = (string)dgvTechnicien.Rows[IdxLigneActuelle].Cells[2].Value; // On récupère l'indice de ce technicien dans la listTechnicien int indiceDansListTechnicien = listTechnicien.FindIndex(item => item.LoginT == loginTechnicien); // On récupère le technicien complet technicienSelectionne = listTechnicien[indiceDansListTechnicien]; // On affiche les données du Technicien textBoxNom.Text = technicienSelectionne.Nom; textBoxPrenom.Text = technicienSelectionne.Prenom; // recherche du matériel affecté au technicien pour récupérer son numéro de téléphone int indiceDansListMateriel = listMateriel.FindIndex(materielRecherché => materielRecherché.IdMateriel == technicienSelectionne.FkIdMateriel); if (indiceDansListMateriel >= 0) // matériel trouvé si >=0 { materiel = listMateriel[indiceDansListMateriel]; mTxtBoxNumtel.Text = materiel.NumeroTel; } else { mTxtBoxNumtel.ResetText(); MessageBox.Show("Ce technicien n'a pas de matériel affecté, rentrer manuellement un numéro"); } } }
private void Boutton_Ajouter_Click(object sender, EventArgs e) { IGestionTechnicienDAO IGTDAO = new GestionTechnicienDAO(); Technicien T = new Technicien { CIN = Convert.ToInt32(textBox1.Text), Login = textBox4.Text, Password = textBox5.Text }; var exist = IGTDAO.exist(T); if (exist) { MessageBox.Show("Ce Technicien existe deja"); } else { Personne T1 = new Technicien(); T.CIN = Convert.ToInt32(textBox1.Text); T.Nom = textBox2.Text; T.Prenom = textBox3.Text; T.Login = textBox4.Text; T.Password = textBox5.Text; IGTDAO.AjouterTechnicien(T); MessageBox.Show("Le Technicien a été ajouté"); } }
public void AddButton_Clicked(object sender, EventArgs e) { if (FieldsValidated()) { try { var technicien = new Technicien { Nom = TechnicianNameEntry.Text, Login = LoginEntry.Text, MotDePasse = PaswordEntry.Text }; if (SendTechnician(technicien)) { DisplayAlert("Succés", "Technicien ajoutée avec succés", "Ok"); } TechnicianNameEntry.Text = ""; LoginEntry.Text = ""; PaswordEntry.Text = ""; } catch (WebException exc) { Console.WriteLine(exc.Message); DisplayAlert("Erreur", "Erreur lors de l'envoi des nouvelles données", "Ok"); } catch (Exception ex) { Console.WriteLine(ex.Message); DisplayAlert("Erreur", "Verifier les valuers entrées", "Ok"); } } else { DisplayAlert("Erreur", "Verifier les valuers entrées", "Ok"); } }
public MainTechnicienViewModel() { CurrentTechnicien = new Technicien(); PageViewModels.Add(new CompteRenduTechnicienViewModel()); PageViewModels.Add(new InterventionTechnicienViewModel()); // Set starting page CurrentPageViewModel = PageViewModels[0]; }
//************************************************************************************************** private void dgvTechnicien_CellClick(object sender, DataGridViewCellEventArgs e) { int IdxLigneActuelle = e.RowIndex; if (IdxLigneActuelle >= 0) { string loginTechnicien = (string)dgvTechnicien.Rows[IdxLigneActuelle].Cells[2].Value; int indiceDansListTechnicien = listTechniciens.FindIndex(item => item.LoginT == loginTechnicien); technicienSelectionne = listTechniciens[indiceDansListTechnicien]; affichePlanningTechnicien(technicienSelectionne); } }
public MyTasksPage(Technicien technicien) { InitializeComponent(); this.Technicien = technicien; Position position = new Position(34.741094, 10.752437); MapSpan mapSpan = new MapSpan(position, 0.01, 0.01); MapView = new Map(mapSpan) { MapType = MapType.Satellite }; MainGrid.Children.AddVertical(MapView); }
private bool SendTechnician(Technicien technicien) { var req = WebRequest.CreateHttp(Constants.AddTechnicianURL); req.Method = "POST"; req.ContentType = "application/json"; var jsonTechnicien = JsonConvert.SerializeObject(technicien); var byteArrayTechnicien = Encoding.UTF8.GetBytes(jsonTechnicien); req.GetRequestStream().Write(byteArrayTechnicien, 0, byteArrayTechnicien.Length); var resp = new StreamReader(req.GetResponse().GetResponseStream()).ReadToEnd(); return(resp.Equals("Technician Added Successfully")); }
//************************************************************************************************** private void affichePlanningTechnicien(Technicien technicien) { // RAZ des listes de rendez-vous et d'interventions listRdv.Clear(); // Raz affichage lblValDebInter.ResetText(); lblValFinInterv.ResetText(); lblValDureeInterv.ResetText(); // Chargement des interventions du jour d'un technicien et peuplement de la liste des rdv à afficher Intervention uneIntervention = new Intervention(); uneIntervention.DebutIntervention = dayView.StartDate.Date; uneIntervention.FkLoginT = technicien.LoginT; try { using (InterventionManager interventionManager = new InterventionManager()) { listIntervention = interventionManager.listeInterventionsTechnicien(uneIntervention); if (listIntervention != null) { foreach (Intervention chaqueIntervention in listIntervention) { // on peuple la liste des rdv a afficher Appointment rdv = new Appointment(); rdv.StartDate = chaqueIntervention.DebutIntervention; rdv.EndDate = chaqueIntervention.FinIntervention; rdv.BorderColor = Color.Red; // la couleur de l'entourage rdv.Title = chaqueIntervention.ObjectifVisite; // le texte à l'intérieur du rdv listRdv.Add(rdv); // On ajoute un tag (l'IdIntervention sur chaque rdv) // IdIntervention sera récupérer grace à rdv.Layer de chaque rendez-vous rdv.Layer = chaqueIntervention.IdIntervention; } } else { Appointment rdv = new Appointment(); rdv.StartDate = dayView.StartDate; rdv.EndDate = dayView.StartDate; rdv.Title = String.Empty; } dayView.Invalidate(); // On force le conrole à ce redessiner } } catch (Exception ex) { Console.WriteLine(ex.Message); } }
static void Main(string[] args) { Technicien technicien = new Technicien(); MonteurTour monteurTour1 = new MonteurTour1(); MonteurTour monteurTour2 = new MonteurTour2(); technicien.setMonteurTour(monteurTour1); technicien.construireTour(); Tour tour = technicien.getTour(); tour.Informations(); Console.ReadKey(); }
//************************************************************************************************** private void dgvTechnicien_CellClick(object sender, DataGridViewCellEventArgs e) { int IdxLigneActuelle = e.RowIndex; if (IdxLigneActuelle >= 0) { string loginTechnicien = (string)dgvTechnicien.Rows[IdxLigneActuelle].Cells[2].Value; int indiceDansListTechnicien = listTechnicien.FindIndex(indice => indice.LoginT == loginTechnicien); technicienSelectionne = listTechnicien[indiceDansListTechnicien]; // recupère les données du Technicien textBoxNom.Text = technicienSelectionne.Nom; textBoxPrenom.Text = technicienSelectionne.Prenom; textBoxLoginT.Text = technicienSelectionne.LoginT; } }
private void btnEntrer_Click(object sender, EventArgs e) { if (txtEmployéId.Text == null || txtEmployéId.Text == "" || txtMdp.Text == null || txtMdp.Text == "" || Util.StringToInt(txtEmployéId.Text) == int.MinValue) { errIncorrect.Visible = true; return; } Technicien employét = clientService.GetTechnicienByID(Util.StringToInt(txtEmployéId.Text)); if (employét == null) { EmployéRC employérc = clientService.GetEmployéRCByID(Util.StringToInt(txtEmployéId.Text)); if (employérc == null) { errIncorrect.Visible = true; } else { if (txtMdp.Text != employérc.mdp) { errIncorrect.Visible = true; } else { Session.employéRCID = employérc.Id; GestionComptes formGestionComptes = new GestionComptes(clientService, facturationService); formGestionComptes.ShowDialog(); this.Close(); } } } else { if (txtMdp.Text != employét.mdp) { errIncorrect.Visible = true; } else { Session.technicienID = employét.Id; GestionInstallation formGestionInstallation = new GestionInstallation(clientService); formGestionInstallation.ShowDialog(); this.Close(); } } }
//************************************************************************************************** // Cette méthode récupère les rdv d'un technicien en BDD pour peupler la liste des rendez-vous à afficher //************************************************************************************************** private void affichePlanningTechnicien(Technicien technicien) { // Raz des listes contenant les rdv affichées et les instreventions d'un technicien récupérées en BDD listRdvBdd.Clear(); // Raz de l'affichage clearTextBox(); // On charge la liste des rendez-vous d'un technicien pour un jour donné Intervention uneIntervention = new Intervention(); uneIntervention.DebutIntervention = dayView.StartDate.Date; uneIntervention.FkLoginT = technicien.LoginT; try { using (InterventionManager interventionManager = new InterventionManager()) { listIntervention = interventionManager.listeInterventionsTechnicien(uneIntervention); if (listIntervention != null) { foreach (Intervention chaqueIntervention in listIntervention) { // on peuple la liste des rdv a afficher Appointment rdv = new Appointment(); rdv.StartDate = chaqueIntervention.DebutIntervention; rdv.EndDate = chaqueIntervention.FinIntervention; rdv.BorderColor = Color.Red; // la couleur de l'entourage rdv.Title = chaqueIntervention.ObjectifVisite; // le texte à l'intérieur du rdv listRdvBdd.Add(rdv); // On ajoute un tag (l'IdIntervention sur chaque rdv) // IdIntervention sera récupérer grace à rdv.Layer de chaque rendez-vous rdv.Layer = chaqueIntervention.IdIntervention; } } else { Appointment rdv = new Appointment(); rdv.StartDate = dayView.StartDate; rdv.EndDate = dayView.StartDate; rdv.Title = String.Empty; } dayView.Invalidate(); // On force le controle à se redessiner } } catch (Exception ex) { } }
//************************************************************************************************** private void dgvListeTechniciens_CellClick(object sender, DataGridViewCellEventArgs e) { int IdxLigneActuelle = e.RowIndex; // indice de la ligne sélectionnée if (IdxLigneActuelle >= 0) { // loginT est caché dans la première colonne du dgv String logingT = (String)dgvListeTechniciens.Rows[IdxLigneActuelle].Cells[0].Value; // on récupère l'indice dans la liste des techniciend de celui qui est sélectionnée int indiceDansListTechnicien = listTechniciens.FindIndex(s => s.LoginT == logingT); // recupère le technicien sélectionnée technicienSelectionne = listTechniciens[indiceDansListTechnicien]; } if ((materielSelectionne != null) && (technicienSelectionne != null)) { this.btnAttribuerMateriel.Enabled = true; } }
private IList <Technicien> SearchTechnicienBase() { Technicien techniciens = new Technicien(); techniciens.nom = ""; techniciens.prenom = ""; techniciens.tel = ""; IList <Technicien> ListTechnicien = null; using (API_Daltons.Service1Client api = new API_Daltons.Service1Client()) { { ListTechnicien = api.SearchTechnicien(); } } return(ListTechnicien); }
//************************************************************************************************** private void InitialiserDGV() { technicienSelectionne = null; List <int> listIdMaterielDispo = new List <int>(); dgvTechnicien.Rows.Clear(); // Récupération de la liste des techniciens et des clients using (Manager manager = new Manager()) { // créer un liste de clients et récupère les clients de la BDD manager.getListe(ref listClient, "client"); // Récuperation de la liste des techniciens manager.getListe(ref listTechniciens, "technicien"); } // On rempli le dataGridView des Techniciens foreach (Technicien chaqueTechnicien in listTechniciens) { dgvTechnicien.Rows.Add( chaqueTechnicien.Nom, chaqueTechnicien.Prenom, chaqueTechnicien.LoginT); } // Trier par ordre alphabétique des noms le dataGridView dgvTechnicien.Sort(dgvTechnicien.Columns[0], ListSortDirection.Ascending); // On rempli le dataGridView des Clients foreach (Client chaqueClient in listClient) { dgvClient.Rows.Add( chaqueClient.IdClient, chaqueClient.Entreprise, chaqueClient.Prenom, chaqueClient.Nom); } // Trie par ordre alphabétique des noms dgvClient.Sort(dgvClient.Columns[3], ListSortDirection.Ascending); // clear des textBox txtBoxPrenomContact.ResetText(); txtBoxNomContact.ResetText(); mTxtBoxTelephone.ResetText(); txtBoxObjetVisite.ResetText(); }
//************************************************************************************************** private void InitialiserDGV() { technicienSelectionne = null; List <int> listIdMaterielDispo = new List <int>(); dgvTechnicien.Rows.Clear(); // On rempli le dataGridView des Techniciens foreach (Technicien chaqueTechnicien in listTechniciens) { dgvTechnicien.Rows.Add( chaqueTechnicien.Nom, chaqueTechnicien.Prenom, chaqueTechnicien.LoginT); } // Trier par ordre alphabétique des noms le dataGridView dgvTechnicien.Sort(dgvTechnicien.Columns[0], ListSortDirection.Ascending); // Raz de l'affichage clearTextBox(); }
//************************************************************************************************** private void affichePlanningTechnicien(Technicien technicien) { listRdv.Clear(); dayView.Refresh(); dayView.Invalidate(); // On force le controle à ce redessiner if (listIntervention == null) { listIntervention = new List <Intervention>(); } listIntervention.Clear(); Intervention uneIntervention = new Intervention(); uneIntervention.DebutIntervention = dayView.StartDate.Date; uneIntervention.FkLoginT = technicien.LoginT; try { using (InterventionManager interventionManager = new InterventionManager()) { listIntervention = interventionManager.listeInterventionsTechnicien(uneIntervention); foreach (Intervention chaqueIntervention in listIntervention) { Appointment rdv = new Appointment(); rdv.StartDate = chaqueIntervention.DebutIntervention; rdv.EndDate = chaqueIntervention.FinIntervention; rdv.BorderColor = Color.Red; rdv.Title = chaqueIntervention.ObjectifVisite; listRdv.Add(rdv); } dayView.Invalidate(); // On force le controle à ce redessiner } } catch (Exception ex) { } }
//************************************************************************************************** private void InitialiserDGV() { technicienSelectionne = null; List <int> listIdMaterielDispo = new List <int>(); dgvTechnicien.Rows.Clear(); // Récupération de la liste des techniciens et des clients using (Manager manager = new Manager()) { // Récuperation de la liste des techniciens manager.getListe(ref listTechniciens, "technicien"); } // On rempli le dataGridView des Techniciens foreach (Technicien chaqueTechnicien in listTechniciens) { dgvTechnicien.Rows.Add( chaqueTechnicien.Nom, chaqueTechnicien.Prenom, chaqueTechnicien.LoginT); } // Trier par ordre alphabétique des noms le dataGridView dgvTechnicien.Sort(dgvTechnicien.Columns[0], ListSortDirection.Ascending); }
//************************************************************************************************** private void dgvMateriels_CellClick(object sender, DataGridViewCellEventArgs e) { int IdxLigneActuelle = e.RowIndex; if (IdxLigneActuelle >= 0) { int idMateriel = (int)dgvMateriels.Rows[IdxLigneActuelle].Cells[0].Value; int indiceDansListMateriel = listMateriel.FindIndex(unMateriel => unMateriel.IdMateriel == idMateriel); materielSelectionne = listMateriel[indiceDansListMateriel]; //On a récupéré l'objet matériel correspondant à la sélection, // on rempli les différents champs textBoxTypeMateriel.Text = materielSelectionne.TypeMateriel; textBoxNumSerie.Text = materielSelectionne.NumeroSerie; mTxtBoxNumtel.Text = materielSelectionne.NumeroTel; textBoxCodeIMEI.Text = materielSelectionne.Imei; textBoxIdGoogle.Text = materielSelectionne.IdGoogle; comBoxEtatMatériel.SelectedItem = materielSelectionne.EtatMateriel; lblDateEnregistrementMateriel.Text = materielSelectionne.DateEnregistrement.ToString("dd/MM/yyyy"); if (materielSelectionne.DateAffectation != DateTime.MinValue) { lblValDateAffectation.Text = materielSelectionne.DateAffectation.ToString("dd/MM/yyyy"); } else { lblValDateAffectation.Text = "jamais affecté"; } using (TechnicienManager technicienManager = new TechnicienManager()) { Technicien technicien = new Technicien(); technicien.FkIdMateriel = materielSelectionne.IdMateriel; technicien = technicienManager.getTechnicien(technicien); txtBoxAffectationMat.Text = technicien.Prenom + " " + technicien.Nom; } btnModifierMateriel.Enabled = true; } }
//************************************************************************************************** private void initialiserDgvMaterielsEtDgvTechniciens() { this.btnAttribuerMateriel.Enabled = false; materielSelectionne = null; technicienSelectionne = null; List <int> listIdMaterielDispo = new List <int>(); // RAZ des DGV dgvListeTechniciens.Rows.Clear(); dgvMateriels.Rows.Clear(); // Récupération de la liste des techniciens et des matériels using (Manager manager = new Manager()) { // connexion déjà ouverte on peut la passer en paramètre // Récuperation de la liste des matériels manager.getListe(ref listMateriel, "materiel"); // Récuperation de la liste des techniciens manager.getListe(ref listTechniciens, "technicien"); // Récuperation de la liste des techniciens sans matériels // Utilisation de Linq //var listItem = //from technicien in listTechniciens //where technicien.FkIdMateriel == 0 //select technicien; //listTechniciensSansMateriel = (List<Technicien>)listItem; // Ou utilisation de Linq avec Expression Lamda listTechniciensSansMateriel = listTechniciens.FindAll(technicien => technicien.FkIdMateriel == 0); // Récuperation de la liste des matériels non affectés (jointure + Différence entre list) // On commence par récupérer la liste des matériels affectés var result = from materiel in listMateriel join technicien in listTechniciens on materiel.IdMateriel equals technicien.FkIdMateriel select materiel; // On obtient la liste des matériels attribués // Grace à la méthode Except on retire de la listMateriel le matériel affecté // On injecte le résultat dans la listMaterielDispo via la méthode ToList listMaterielDispo = listMateriel.Except(result).ToList <Materiel>(); } // On rempli le dataGridView des techniciens sans matériel foreach (Technicien chaqueTechnicien in listTechniciensSansMateriel) { dgvListeTechniciens.Rows.Add(chaqueTechnicien.LoginT, chaqueTechnicien.Prenom, chaqueTechnicien.Nom); } // Trier par ordre alphabétique des noms le dataGridView dgvListeTechniciens.Sort(dgvListeTechniciens.Columns[2], ListSortDirection.Ascending); textBoxTypeMateriel.ResetText(); textBoxNumSerie.ResetText(); mTxtBoxNumtel.ResetText(); // On affiche dans le dgvMateriel que les matériels trouvé dispo foreach (Materiel chaqueMateriel in listMaterielDispo) { dgvMateriels.Rows.Add( chaqueMateriel.IdMateriel, chaqueMateriel.TypeMateriel, chaqueMateriel.NumeroSerie); } }