Fix GetSplits

This commit is contained in:
2025-11-03 14:32:31 -05:00
parent e9c6ad8292
commit eaef92c701

View File

@@ -338,54 +338,55 @@ namespace MarketData.Helper
// ***************************************************************************************************************************************************************************************
public static Splits GetSplits()
{
HttpNetResponse httpNetResponse=null;
try
{
Splits splits=new Splits();
StringBuilder sb=new StringBuilder();
String strRequest;
sb.Append("http://eoddata.com/splits.aspx");
strRequest=sb.ToString();
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Getting splits {0}",strRequest));
httpNetResponse=HttpNetRequest.GetRequestStreamZIPV2(strRequest);
if(!httpNetResponse.Success)
HttpNetResponse httpNetResponse = null;
try
{
Splits splits = new Splits();
StringBuilder sb = new StringBuilder();
String strRequest;
sb.Append("http://eoddata.com/splits.aspx");
strRequest = sb.ToString();
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Getting splits {0}", strRequest));
httpNetResponse = HttpNetRequest.GetRequestNoEncoding(strRequest);
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("Request:{0} failed with status {1}", httpNetResponse.Request, httpNetResponse.StatusCode));
return null;
}
HtmlDocument htmlDocument=new HtmlDocument();
MemoryStream memoryStream=new MemoryStream(httpNetResponse.ResponseStream.GetBuffer());
HtmlDocument htmlDocument = new HtmlDocument();
byte[] streamBytes = Encoding.ASCII.GetBytes(httpNetResponse.ResponseString);
using MemoryStream memoryStream = new MemoryStream(streamBytes);
htmlDocument.Load(memoryStream);
HtmlNodeCollection divSection = htmlDocument.DocumentNode.SelectNodes("//*[@class=\"quotes\"]");
HtmlNodeCollection divSection = htmlDocument.DocumentNode.SelectNodes("//*[@class=\"table-standard\"]");
if (null == divSection || 0 == divSection.Count) return null;
HtmlNodeCollection rows = divSection[0].SelectNodes(".//tr");
for (int index = 0; index < rows.Count; index++)
{
Split split=new Split();
Split split = new Split();
HtmlNodeCollection headerColumns = rows[index].SelectNodes(".//th");
if (null != headerColumns && headerColumns.Count > 0) continue;
HtmlNodeCollection dataColumns = rows[index].SelectNodes(".//td");
if(dataColumns.Count<4)continue;
if(null!=dataColumns[0])split.Exchange=dataColumns[0].InnerText.Trim().ToUpper(); // exchange
if(null!=dataColumns[1])split.Symbol=dataColumns[1].InnerText.Trim().ToUpper();
if(null!=dataColumns[2])split.EffectiveDate=Utility.ParseDate(dataColumns[2].InnerText.Trim().ToUpper());
if(null!=dataColumns[3])split.StrRatio=dataColumns[3].InnerText.Trim().ToUpper();
if (dataColumns.Count < 4) continue;
if (null != dataColumns[0]) split.Exchange = dataColumns[0].InnerText.Trim().ToUpper(); // exchange
if (null != dataColumns[1]) split.Symbol = dataColumns[1].InnerText.Trim().ToUpper(); // symbol
if (null != dataColumns[2]) split.EffectiveDate = DateTime.ParseExact(dataColumns[2].InnerText.Trim().ToUpper(),
"dd MMM yyyy", new System.Globalization.CultureInfo("en-US"), DateTimeStyles.AssumeLocal);
if (null != dataColumns[3]) split.StrRatio = dataColumns[3].InnerText.Trim().ToUpper(); // ratio
splits.Add(split);
}
memoryStream.Close();
memoryStream.Dispose();
return splits;
}
catch(Exception exception)
{
MDTrace.WriteLine(LogLevel.DEBUG,exception);
}
catch (Exception exception)
{
MDTrace.WriteLine(LogLevel.DEBUG, exception);
return null;
}
finally
{
if(null!=httpNetResponse)httpNetResponse.Dispose();
}
}
finally
{
if (null != httpNetResponse) httpNetResponse.Dispose();
}
}
// ***************************************************************************************************************************************************************************************
// ************************************************************************** G D P P E R C A P I T A D A T A W O R L D B A N K *************************************************
// ***************************************************************************************************************************************************************************************