private void ImpayerCategorie(Dictionary <string, List <int> > lstCentre, List <int> lstIdCategorieClient, List <int> lstIdTournee, bool IsDetail) { prgBar.Visibility = System.Windows.Visibility.Visible; Galatee.Silverlight.ServiceReport.ReportServiceClient service1 = new Galatee.Silverlight.ServiceReport.ReportServiceClient(Utility.ProtocoleFacturation(), Utility.EndPoint("Report")); service1.ReturneListeDesImpayesCompleted += (sr, res) => { prgBar.Visibility = System.Windows.Visibility.Collapsed; if (res != null && res.Cancelled) { return; } if (res.Result != null && res.Result.Count != 0) { string Rdlc = "ImpayeCategorieTournee"; if (btn_Site.Tag.ToString() == SessionObject.Enumere.CodeSiteScaBT || btn_Site.Tag.ToString() == SessionObject.Enumere.CodeSiteScaMT) { Rdlc = "ImpayeCategorieGCTournee"; } if (this.rdb_Detail.IsChecked == true) { Rdlc = "ImpayeCategorieDetail"; } List <ServiceReport.CsLclient> lstClient = new List <ServiceReport.CsLclient>(); var lesClient = res.Result.Select(y => new { y.CENTRE, y.CLIENT, y.ORDRE }).Distinct(); foreach (var item in lesClient) { lstClient.Add(new ServiceReport.CsLclient() { CENTRE = item.CENTRE, CLIENT = item.CLIENT, ORDRE = item.ORDRE }); } int Passage = 0; string[] tableau = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "AB", "AC", "AD", "AE", "AF", "AG", "AH" }; while (lstClient.Where(o => o.Selectionner != true).Count() != 0) { string NomFichier = Rdlc + tableau[Passage]; List <string> clientSelectionne = lstClient.Where(m => m.Selectionner != true).Take(2000).Select(o => o.CLIENT).ToList(); List <ServiceReport.CsLclient> factureAEditer = res.Result.Where(p => clientSelectionne.Contains(p.CLIENT)).ToList(); if (Chk_ExportExcel.IsChecked != true) { Utility.ActionDirectOrientation <ServicePrintings.CsLclient, ServiceReport.CsLclient>(res.Result, null, SessionObject.CheminImpression, Rdlc, "Report", true); } else { Utility.ActionExportation <ServicePrintings.CsLclient, ServiceReport.CsLclient>(res.Result, null, string.Empty, SessionObject.CheminImpression, Rdlc + "Xls", "Report", true, "xlsx"); } lstClient.Where(p => clientSelectionne.Contains(p.CLIENT)).ToList().ForEach(p => p.Selectionner = true); Passage++; } } else { Message.ShowInformation("Aucune information trouvée", "Report"); return; } }; service1.ReturneListeDesImpayesAsync(lstCentre, lstIdCategorieClient, lstIdTournee, IsDetail); service1.CloseAsync(); }