/// <summary> /// Downloads and processes the data to extract top makelaars /// </summary> /// <param name="city"></param> /// <param name="withGarden"></param> /// <param name="pageSize">this parameter can be assigned by </param> /// <returns></returns> public IEnumerable <string> GetTopMakelaars(string city, bool withGarden = false, int take = 10) { try { var downloadTask = this.downloader.DownloadData(GetPath(city, 1, this.pageSize, withGarden)); downloadTask.Wait(); var result = downloadTask.Result; var totalPages = (int)result["Paging"]["AantalPaginas"].Value; var dict = new Dictionary <string, int>(); for (var i = 2; i <= totalPages; i++) { foreach (var obj in result["Objects"]) { var makelaarNaam = (string)obj["MakelaarNaam"].Value; if (dict.ContainsKey(makelaarNaam)) { dict[makelaarNaam] += 1; } else { dict.Add(makelaarNaam, 1); } } // for demo purpose, or even usefull for some cases ... OnProgressEventHandler?.Invoke(i - 1, totalPages); Thread.Sleep(100); downloadTask = this.downloader.DownloadData(GetPath(city, i, this.pageSize, withGarden)); downloadTask.Wait(); result = downloadTask.Result; } var sorted = (from entry in dict orderby entry.Value descending select $"{entry.Key} ({entry.Value})").Take(take); return(sorted); } catch (Exception ex) { Console.WriteLine($"Problem downloading data for [{ex.Message}]"); return(null); } }
public void Set_OnProgressDelegate(OnProgressEventHandler deleg) { OnProgressDelegate = deleg; }
public bool Is_OnProgressDelegate(OnProgressEventHandler deleg) { return(OnProgressDelegate == deleg); }