public override void ProcessData() { RaiseProcessingUpdate(new EventArg<string>("Retrieving FinViz data...")); foreach (var exchange in exhcanges) { CsvDataAdapter adapter = new CsvDataAdapter(true); adapter.DataRetrieveCompleted += adapter_DataRetrieveCompleted; adapter.DataRetrieveError += adapter_DataRetrieveError; string[] values = exchange.Split('='); if (values.Length == 2) { if (FilterString.Contains("&f=")) adapter.CurrentURL = exportUrl + FilterString + "," + values[1]; else adapter.CurrentURL = exportUrl + FilterString + "&f=" + values[1]; } else { adapter.CurrentURL = exportUrl; } adapter.RetrieveData(); } }
protected override void OnInnerProcessorCompleted(EventArg<System.Data.DataTable> e) { try { querySetCount = 0; RaiseProcessingUpdate(new EventArg<string>("Getting Yahoo Finance data...")); var col = e.Data.Columns.Add(FieldConstant.ExDividendDate, typeof(string)); col = e.Data.Columns.Add(FieldConstant.DividendPayDate, typeof(string)); col = e.Data.Columns.Add(FieldConstant.DividendYield, typeof(string)); col = e.Data.Columns.Add(FieldConstant.TargetPrice1y, typeof(float)); //get the filtered data //contruct the data //get back the table var result = ConstructURL(e.Data); foreach (string url in result) { CsvDataAdapter adapter = new CsvDataAdapter(false); adapter.DataRetrieveCompleted += adapter_DataRetrieveCompleted; adapter.DataRetrieveError += adapter_DataRetrieveError; adapter.CurrentURL = url; adapter.RetrieveData(); Interlocked.Increment(ref querySetCount); } } catch (Exception err) { RaiseProcessingError(new EventArg<Exception>(err)); } }