private IEnumerable <ICab> CabsPourCompte(CompteCab compte, ITaskObserver observer) { observer.NotifyProgress(this, 0); var cabs = new List <ICab>(); string pageRacine = OuvrirPage(RequêteDossierRacine(compte), observer.InSlice(0, 7)); cabs.AddRange(CabsPourPage(pageRacine, compte.Editeur, observer.InSlice(7, 10))); ITaskObserver loopObs = observer.InSlice(10, 100); var matches = _RegexDossier.Matches(pageRacine); var slices = loopObs.GetSlices(matches.Count).GetEnumerator(); foreach (Match mDossier in matches) { ITaskObserver sliceObs = loopObs.InSlice(slices.Current); var gDossier = mDossier.Groups["url_rep"]; if (gDossier != null && !String.IsNullOrEmpty(gDossier.Value)) { string dossier = gDossier.Value; string pageDossier = OuvrirPage(RequêteDossier(compte, dossier), sliceObs.InSlice(0, 70)); if (!String.IsNullOrEmpty(pageDossier)) { cabs.AddRange(CabsPourPage(pageDossier, compte.Editeur, sliceObs.InSlice(70, 100))); } } slices.MoveNext(); } observer.NotifyProgress(this, 100); return(cabs); }
private HttpWebRequest RequêteUrl(CompteCab compte, string url) { var repRequest = (HttpWebRequest)WebRequest.Create(url); repRequest.Credentials = new NetworkCredential(compte.Identifiant, compte.MotDePasse, ""); repRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"; return(repRequest); }
private HttpWebRequest RequêteDossierRacine(CompteCab compte) { string dossierRacine = $"{Configuration.DossierRacine}/{compte.Dossier}"; return(RequêteDossier(compte, dossierRacine)); }
private HttpWebRequest RequêteDossier(CompteCab compte, string dossier) { string url = $"{Configuration.Url}/{dossier}/"; return(RequêteUrl(compte, url)); }