private void Handle(InformationReport report) { if (report == null) { throw new ArgumentNullException(nameof(report), "Invalid information report"); } switch ((InformationReport.StatusCode)report.status_code) { case InformationReport.StatusCode.FAILURE: case InformationReport.StatusCode.DISCONNECTED: case InformationReport.StatusCode.DROPPED: case InformationReport.StatusCode.NOT_FOUND: marketDataNotResolvedEvent.Raise(report.id, report); return; case InformationReport.StatusCode.SUCCESS: if (report.accounts_report != null) { accountResolvedEvent.Raise(report.accounts_report); } else if (report.symbol_resolution_report != null) { if (report.symbol_resolution_report.contract_metadata != null) { contractMetadataReceivedEvent.Raise(report.symbol_resolution_report.contract_metadata); } marketDataResolvedEvent.Raise(report.id, report); } //else if (report.session_information_report != null) //{ // sessionsResolved(report.session_information_report); //} //else if (report.last_statement_balances_report != null) //{ // lastStatementBalancesResolved(report.last_statement_balances_report); //} //else if (report.historical_orders_report != null) //{ // HistoricalOrdersRequestResolved(report.historical_orders_report); //} break; case InformationReport.StatusCode.SUBSCRIBED: break; case InformationReport.StatusCode.UPDATE: break; } }
private async Task FillData(DataSet ds, InformationContext entity, List <InformationReport> reports) { foreach (DataRow item in ds.Tables[0].Rows) { InformationReport report = new InformationReport(); report.ErrorCode = item["errorcode"] != null?Convert.ToInt32(item["errorcode"]) : 0; report.ErrorMessage = item["errormessage"].ToString(); report.NumberOfResults = item["numberofresults"].ToString(); report.Results = item["results"].ToString(); report.StopID = item["stopid"] != null?Convert.ToInt32(item["stopid"]) : 0; report.TimeStamp = item["timestamp"] != null?Convert.ToDateTime(item["timestamp"]) : DateTime.Now; reports.Add(report); entity.InformationReport.Add(report); } entity.SaveChanges(); }