Display more context in SEC pull
This commit is contained in:
@@ -1074,10 +1074,10 @@ namespace MarketData.Helper
|
|||||||
MemoryStream memoryStream = null;
|
MemoryStream memoryStream = null;
|
||||||
HttpNetResponse httpNetResponse=null;
|
HttpNetResponse httpNetResponse=null;
|
||||||
int TIMEOUT_MS_BETWEEN_DOCUMENTS=1000;
|
int TIMEOUT_MS_BETWEEN_DOCUMENTS=1000;
|
||||||
|
SECFilings secFilings = new SECFilings();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
SECFilings secFilings = new SECFilings();
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
String strRequest;
|
String strRequest;
|
||||||
sb.Append(SEC_BASE_URL).Append("/cgi-bin/browse-edgar?action=getcompany&CIK=").Append(cik).Append("&type=&dateb=&owner=include&count="+maxFilings.ToString());
|
sb.Append(SEC_BASE_URL).Append("/cgi-bin/browse-edgar?action=getcompany&CIK=").Append(cik).Append("&type=&dateb=&owner=include&count="+maxFilings.ToString());
|
||||||
@@ -1086,7 +1086,7 @@ namespace MarketData.Helper
|
|||||||
httpNetResponse=HttpNetRequest.GetRequestNoEncodingV5(strRequest,DEFAULT_TIMEOUT_MS,webProxy);
|
httpNetResponse=HttpNetRequest.GetRequestNoEncodingV5(strRequest,DEFAULT_TIMEOUT_MS,webProxy);
|
||||||
if(!httpNetResponse.Success)
|
if(!httpNetResponse.Success)
|
||||||
{
|
{
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Request:{0} failed with status {1}",httpNetResponse.Request,httpNetResponse.StatusCode));
|
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[GetSECFilings] Request:{0} failed with status {1}",httpNetResponse.Request,httpNetResponse.StatusCode));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
byte[] streamBytes = Encoding.ASCII.GetBytes(httpNetResponse.ResponseString);
|
byte[] streamBytes = Encoding.ASCII.GetBytes(httpNetResponse.ResponseString);
|
||||||
@@ -1124,11 +1124,13 @@ namespace MarketData.Helper
|
|||||||
{
|
{
|
||||||
if (null != memoryStream) memoryStream.Close();
|
if (null != memoryStream) memoryStream.Close();
|
||||||
if(null!=httpNetResponse)httpNetResponse.Dispose();
|
if(null!=httpNetResponse)httpNetResponse.Dispose();
|
||||||
|
MDTrace.WriteLine(LogLevel.DEBUG,$"[GetSECFilings] Retrieved {secFilings.Count} SECFilings for {symbol}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Get the filing document in XML format
|
// Get the filing document in XML format
|
||||||
private static SECFilings GetSECFilingDocuments(String symbol,DateTime filingDate,String secFilingDocumentUrl)
|
private static SECFilings GetSECFilingDocuments(String symbol,DateTime filingDate,String secFilingDocumentUrl)
|
||||||
{
|
{
|
||||||
|
Profiler profiler = new Profiler();
|
||||||
MemoryStream memoryStream = null;
|
MemoryStream memoryStream = null;
|
||||||
SECFilings secFilings = new SECFilings();
|
SECFilings secFilings = new SECFilings();
|
||||||
String secFilingDocument = null;
|
String secFilingDocument = null;
|
||||||
@@ -1137,12 +1139,13 @@ namespace MarketData.Helper
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("GetSECFilingDocuments[Retrieving documents at {0}]",secFilingDocumentUrl));
|
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[GetSECFilingDocuments]Retrieving documents for {0} at {1}",symbol,secFilingDocumentUrl));
|
||||||
WebProxy webProxy=HttpNetRequest.GetProxy("GetSECFilingDocuments");
|
WebProxy webProxy=HttpNetRequest.GetProxy("GetSECFilingDocuments");
|
||||||
|
if(null == webProxy)MDTrace.WriteLine(LogLevel.DEBUG,"[GetSECFilingDocuments] Not using web proxy.");
|
||||||
httpNetResponse=HttpNetRequest.GetRequestNoEncodingV5(secFilingDocumentUrl,DEFAULT_TIMEOUT_MS,webProxy);
|
httpNetResponse=HttpNetRequest.GetRequestNoEncodingV5(secFilingDocumentUrl,DEFAULT_TIMEOUT_MS,webProxy);
|
||||||
if(!httpNetResponse.Success)
|
if(!httpNetResponse.Success)
|
||||||
{
|
{
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("GetSECFilingDocuments[Request:{0} failed with status {1}]",httpNetResponse.Request,httpNetResponse.StatusCode));
|
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[GetSECFilingDocuments]Request Symbol:{0} Request:{1} failed with status {2}",symbol,httpNetResponse.Request,httpNetResponse.StatusCode));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
byte[] streamBytes = Encoding.ASCII.GetBytes(httpNetResponse.ResponseString);
|
byte[] streamBytes = Encoding.ASCII.GetBytes(httpNetResponse.ResponseString);
|
||||||
@@ -1163,7 +1166,7 @@ namespace MarketData.Helper
|
|||||||
if (null == tables || tables.Count < 1) return null;
|
if (null == tables || tables.Count < 1) return null;
|
||||||
HtmlNodeCollection rows = tables[0].SelectNodes(".//tr");
|
HtmlNodeCollection rows = tables[0].SelectNodes(".//tr");
|
||||||
httpNetResponse.Dispose();
|
httpNetResponse.Dispose();
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("GetSECFilingDocuments. Examining form {0} with {1} entries",formName,rows.Count));
|
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[GetSECFilingDocuments]. {0} Examining form {1} with {2} entries",symbol,formName,rows.Count));
|
||||||
// go through the rows in the table file, searching for the different submission form content
|
// go through the rows in the table file, searching for the different submission form content
|
||||||
int sequence = 0;
|
int sequence = 0;
|
||||||
for (int row = 0; row < rows.Count; row++)
|
for (int row = 0; row < rows.Count; row++)
|
||||||
@@ -1181,12 +1184,12 @@ namespace MarketData.Helper
|
|||||||
HtmlNodeCollection nodes = dataColumns[2].SelectNodes(".//a");
|
HtmlNodeCollection nodes = dataColumns[2].SelectNodes(".//a");
|
||||||
if (null == nodes || 0 == nodes.Count) continue;
|
if (null == nodes || 0 == nodes.Count) continue;
|
||||||
String secFilingDocumentXmlUrl = SEC_BASE_URL + nodes[0].GetAttributeValue("href", "unknown");
|
String secFilingDocumentXmlUrl = SEC_BASE_URL + nodes[0].GetAttributeValue("href", "unknown");
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("GetSECFilingDocuments. Requesting {0}",secFilingDocumentXmlUrl));
|
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[GetSECFilingDocuments]. Symbol:{0} Requesting:{1}",symbol,secFilingDocumentXmlUrl));
|
||||||
try{Thread.Sleep(TIMEOUT_MS_BETWEEN_DOCUMENTS);}catch(Exception){;}
|
try{Thread.Sleep(TIMEOUT_MS_BETWEEN_DOCUMENTS);}catch(Exception){;}
|
||||||
httpNetResponse=HttpNetRequest.GetRequestNoEncodingV5(secFilingDocumentXmlUrl,DEFAULT_TIMEOUT_MS,webProxy);
|
httpNetResponse=HttpNetRequest.GetRequestNoEncodingV5(secFilingDocumentXmlUrl,DEFAULT_TIMEOUT_MS,webProxy);
|
||||||
if(!httpNetResponse.Success)
|
if(!httpNetResponse.Success)
|
||||||
{
|
{
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("GetSECFilingDocuments. Request:{0} failed with status {1}",httpNetResponse.Request,httpNetResponse.StatusCode));
|
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[GetSECFilingDocuments]. Symbol:{0} Request:{1} failed with status {2}",symbol,httpNetResponse.Request,httpNetResponse.StatusCode));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
secFilingDocument = httpNetResponse.ResponseString;
|
secFilingDocument = httpNetResponse.ResponseString;
|
||||||
@@ -1203,7 +1206,7 @@ namespace MarketData.Helper
|
|||||||
secFiling.FormText = secFilingDocument;
|
secFiling.FormText = secFilingDocument;
|
||||||
secFiling.FormText = secFiling.FormText.Replace("\n","");
|
secFiling.FormText = secFiling.FormText.Replace("\n","");
|
||||||
if (null == secFiling.FormText) continue;
|
if (null == secFiling.FormText) continue;
|
||||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("GetSECFilingDocuments. Got {0} for {1} filed on {2}",secFiling.Description,symbol,secFiling.FilingDate.ToShortDateString()));
|
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[GetSECFilingDocuments]. Got {0} for {1} filed on {2}",secFiling.Description,symbol,secFiling.FilingDate.ToShortDateString()));
|
||||||
secFilings.Add(secFiling);
|
secFilings.Add(secFiling);
|
||||||
httpNetResponse.Dispose();
|
httpNetResponse.Dispose();
|
||||||
}
|
}
|
||||||
@@ -1222,6 +1225,7 @@ namespace MarketData.Helper
|
|||||||
memoryStream.Close();
|
memoryStream.Close();
|
||||||
memoryStream = null;
|
memoryStream = null;
|
||||||
}
|
}
|
||||||
|
MDTrace.WriteLine(LogLevel.DEBUG,string.Format("[GetSECFilingDocuments] Done, retrieved {0} documents for {1} in {2}(ms)",secFilings.Count,symbol,profiler.End()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ***************************************************************************************************************************************************************************************
|
// ***************************************************************************************************************************************************************************************
|
||||||
|
|||||||
Reference in New Issue
Block a user