void GetListeUtilisateur(List <int> lstCentre) { try { AdministrationServiceClient client = new AdministrationServiceClient(Utility.ProtocoleFacturation(), Utility.EndPoint("Administration")); client.RetourneListeAllUserPerimetreCompleted += (ss, res) => { if (res.Cancelled || res.Error != null) { string error = res.Error.Message; Message.ShowError(error, Galatee.Silverlight.Resources.Langue.errorTitle); desableProgressBar(); return; } if (res.Result == null || res.Result.Count == 0) { Message.ShowInformation(Galatee.Silverlight.Resources.Langue.msgNodata, Galatee.Silverlight.Resources.Langue.informationTitle); desableProgressBar(); return; } SessionObject.ListeDesUtilisateurs = res.Result; foreach (CsUtilisateur item in res.Result) { item.CENTREAFFICHER = item.CENTRE + " " + item.LIBELLECENTRE; if (item.PERIMETREACTION == 1) { item.LIBELLEPERIMETREACTION = "Centre"; } else if (item.PERIMETREACTION == 2) { item.LIBELLEPERIMETREACTION = "Site"; } else if (item.PERIMETREACTION == 3) { item.LIBELLEPERIMETREACTION = "Globale"; } } List <Galatee.Silverlight.ServiceAccueil.CsCentre> lstCentreProfil = Shared.ClasseMEthodeGenerique.RetourCentreByPerimetre(SessionObject.LstCentre, UserConnecte.listeProfilUser); List <int> lstCentreHabil = new List <int>(); List <CsUtilisateur> _lstUserProfil = new List <CsUtilisateur>(); foreach (var item in lstCentreProfil) { lstCentreHabil.Add(item.PK_ID); } if (UserConnecte.matricule != "99999") { _lstUserProfil = res.Result.Where(t => lstCentreHabil.Contains(t.FK_IDCENTRE)).ToList(); } else { _lstUserProfil = res.Result; } donnesDatagrid = _lstUserProfil; var listeTemp = donnesDatagrid.Select(t => new { t.PASSE, t.PK_ID, t.CENTREAFFICHER, t.CENTRE, t.MATRICULE, t.LOGINNAME, t.LIBELLE, t.LIBELLESTATUSCOMPTE, t.LIBELLEPERIMETREACTION }).Distinct().ToList(); List <CsUtilisateur> lstSourceDatagrid = new List <CsUtilisateur>(); foreach (var item in listeTemp) { lstSourceDatagrid.Add(new CsUtilisateur { PASSE = item.PASSE, CENTREAFFICHER = item.CENTREAFFICHER, PK_ID = item.PK_ID, CENTRE = item.CENTRE, MATRICULE = item.MATRICULE, LOGINNAME = item.LOGINNAME, LIBELLE = item.LIBELLE, LIBELLESTATUSCOMPTE = item.LIBELLESTATUSCOMPTE, LIBELLEPERIMETREACTION = item.LIBELLEPERIMETREACTION }); } foreach (CsUtilisateur item in lstSourceDatagrid) { int toto = 0; CsUtilisateur usrtemp = new CsUtilisateur(); foreach (CsUtilisateur usr in donnesDatagrid) { if (usr.LOGINNAME == item.LOGINNAME) { toto += 1; usrtemp = usr; } } if (toto > 1) { item.LIBELLEFONCTION = "Multiple"; } else if (toto == 1) { item.LIBELLEFONCTION = usrtemp.LIBELLEFONCTION; } } //lvwResultat.ItemsSource = _lstUserProfil; lvwResultat.ItemsSource = lstSourceDatagrid; if (_lstUserProfil != null) { lvwResultat.SelectedItem = _lstUserProfil[0]; } }; client.RetourneListeAllUserPerimetreAsync(lstCentre); } catch (Exception ex) { throw ex; } }