From eaef92c701af1a7aefaf06037c14888e7324eb1b Mon Sep 17 00:00:00 2001 From: Sean Date: Mon, 3 Nov 2025 14:32:31 -0500 Subject: [PATCH] Fix GetSplits --- .../MarketDataLib/Helper/MarketDataHelper.cs | 65 ++++++++++--------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/MarketData/MarketDataLib/Helper/MarketDataHelper.cs b/MarketData/MarketDataLib/Helper/MarketDataHelper.cs index 849472b..c2cbb6c 100755 --- a/MarketData/MarketDataLib/Helper/MarketDataHelper.cs +++ b/MarketData/MarketDataLib/Helper/MarketDataHelper.cs @@ -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 ************************************************* // ***************************************************************************************************************************************************************************************