From a13be6502547e5cb65f45fbf512b98c332eb4faa Mon Sep 17 00:00:00 2001 From: ooples Date: Sat, 16 Mar 2024 14:05:07 -0400 Subject: [PATCH] Did some minor code cleanup Fixed bug #68 that was caused by a mix of different json libraries. Removed System.Text.Json library to only use Newtwonsoft Breaking change for GetChartInfoAsync since it now returns a different model called ChartInfo instead of the old ChartData class Redid GetSparkChartInfoAsync to use Newtonsoft library --- src/Helpers/AnalystHelper.cs | 2 +- src/Helpers/AutoCompleteHelper.cs | 2 +- src/Helpers/BalanceSheetHistoryHelper.cs | 2 +- .../BalanceSheetHistoryQuarterlyHelper.cs | 2 +- src/Helpers/CalendarEventsHelper.cs | 2 +- src/Helpers/CashflowStatementHistoryHelper.cs | 2 +- ...CashflowStatementHistoryQuarterlyHelper.cs | 2 +- src/Helpers/ChartHelper.cs | 33 ++-- src/Helpers/EarningsHelper.cs | 2 +- src/Helpers/EarningsHistoryHelper.cs | 3 +- src/Helpers/EarningsTrendHelper.cs | 2 +- src/Helpers/EsgScoresHelper.cs | 2 +- src/Helpers/FinancialDataHelper.cs | 2 +- src/Helpers/FundOwnershipHelper.cs | 2 +- src/Helpers/FundProfileHelper.cs | 2 +- src/Helpers/IncomeStatementHistoryHelper.cs | 2 +- .../IncomeStatementHistoryQuarterlyHelper.cs | 2 +- src/Helpers/IndexTrendHelper.cs | 2 +- src/Helpers/InsiderHolderHelper.cs | 2 +- src/Helpers/InsiderTransactionHelper.cs | 2 +- src/Helpers/InstitutionHelper.cs | 2 +- src/Helpers/InstitutionOwnershipHelper.cs | 2 +- src/Helpers/KeyStatisticsHelper.cs | 2 +- src/Helpers/MajorDirectHoldersHelper.cs | 2 +- src/Helpers/MajorHoldersBreakdownHelper.cs | 2 +- src/Helpers/MarketSummaryHelper.cs | 2 +- src/Helpers/NetSharePurchaseActivityHelper.cs | 2 +- src/Helpers/PriceHelper.cs | 2 +- src/Helpers/QuoteTypeHelper.cs | 2 +- src/Helpers/RealTimeQuoteHelper.cs | 2 +- src/Helpers/RecommendationHelper.cs | 2 +- src/Helpers/RecommendationTrendHelper.cs | 2 +- src/Helpers/ScreenerHelper.cs | 2 +- src/Helpers/SecFilingsHelper.cs | 2 +- src/Helpers/SectorTrendHelper.cs | 2 +- src/Helpers/SparkChartHelper.cs | 6 +- src/Helpers/StocksOwnedHelper.cs | 2 +- src/Helpers/SummaryDetailsHelper.cs | 2 +- src/Helpers/TrendingHelper.cs | 2 +- src/Helpers/TrendingStocksHelper.cs | 2 +- src/Helpers/UpgradeDowngradeHistoryHelper.cs | 2 +- src/Helpers/Usings.cs | 5 +- src/Models/AssetProfileData.cs | 4 +- src/Models/BalanceSheetHistoryData.cs | 4 +- .../BalanceSheetHistoryQuarterlyData.cs | 4 +- src/Models/CalendarEventsData.cs | 4 +- src/Models/CashFlowStatementHistoryData.cs | 4 +- .../CashflowStatementHistoryQuarterlyData.cs | 4 +- src/Models/ChartData.cs | 155 ++++++++++++++++-- src/Models/EarningsData.cs | 10 +- src/Models/EarningsHistoryData.cs | 4 +- src/Models/EarningsTrendData.cs | 4 +- src/Models/EsgScoresData.cs | 4 +- src/Models/FinancialData.cs | 2 +- src/Models/FundOwnershipData.cs | 4 +- src/Models/FundProfileData.cs | 4 +- src/Models/IncomeStatementHistoryData.cs | 4 +- .../IncomeStatementHistoryQuarterlyData.cs | 4 +- src/Models/IndexTrendData.cs | 4 +- src/Models/InsiderHolderData.cs | 4 +- src/Models/InsiderTransactionData.cs | 4 +- src/Models/InsightsData.cs | 2 +- src/Models/InstitutionOwnershipData.cs | 4 +- src/Models/KeyStatisticData.cs | 2 +- src/Models/MajorDirectHoldersData.cs | 4 +- src/Models/MajorHoldersBreakdownData.cs | 2 +- src/Models/NetSharePurchaseActivityData.cs | 2 +- src/Models/PriceData.cs | 2 +- src/Models/QuoteTypeData.cs | 2 +- src/Models/RealTimeQuoteData.cs | 2 +- src/Models/RecommendData.cs | 4 +- src/Models/RecommendationTrendData.cs | 4 +- src/Models/SecFilingsData.cs | 4 +- src/Models/SectorTrendData.cs | 4 +- src/Models/SparkChartData.cs | 9 +- src/Models/SummaryData.cs | 2 +- src/Models/TrendingData.cs | 4 +- src/Models/UpgradeDowngradeHistoryData.cs | 4 +- src/OoplesFinance.YahooFinanceAPI.csproj | 3 +- src/YahooClient.cs | 4 +- tests/UnitTests/YahooClientTests.cs | 2 +- 81 files changed, 270 insertions(+), 150 deletions(-) diff --git a/src/Helpers/AnalystHelper.cs b/src/Helpers/AnalystHelper.cs index 932fd64..57d3b3c 100644 --- a/src/Helpers/AnalystHelper.cs +++ b/src/Helpers/AnalystHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var analystData = JsonConvert.DeserializeObject(jsonData); - return analystData != null ? (IEnumerable)analystData.Finance.Results : Enumerable.Empty(); + return analystData != null ? (IEnumerable)analystData.Finance.Results : []; } } diff --git a/src/Helpers/AutoCompleteHelper.cs b/src/Helpers/AutoCompleteHelper.cs index bfd6808..72486b2 100644 --- a/src/Helpers/AutoCompleteHelper.cs +++ b/src/Helpers/AutoCompleteHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var autoComplete = JsonConvert.DeserializeObject(jsonData); - return autoComplete != null ? (IEnumerable)autoComplete.ResultSet.Results : Enumerable.Empty(); + return autoComplete != null ? (IEnumerable)autoComplete.ResultSet.Results : []; } } diff --git a/src/Helpers/BalanceSheetHistoryHelper.cs b/src/Helpers/BalanceSheetHistoryHelper.cs index fb14c7e..b9a5514 100644 --- a/src/Helpers/BalanceSheetHistoryHelper.cs +++ b/src/Helpers/BalanceSheetHistoryHelper.cs @@ -13,6 +13,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) var balanceSheetHistory = JsonConvert.DeserializeObject(jsonData); return balanceSheetHistory != null ? (IEnumerable)balanceSheetHistory.QuoteSummary.Results. - Select(x => x.BalanceSheetHistory).First().BalanceSheetStatements : Enumerable.Empty(); + Select(x => x.BalanceSheetHistory).First().BalanceSheetStatements : []; } } diff --git a/src/Helpers/BalanceSheetHistoryQuarterlyHelper.cs b/src/Helpers/BalanceSheetHistoryQuarterlyHelper.cs index 0c4a87c..51d7a9f 100644 --- a/src/Helpers/BalanceSheetHistoryQuarterlyHelper.cs +++ b/src/Helpers/BalanceSheetHistoryQuarterlyHelper.cs @@ -13,6 +13,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) var balanceSheetHistoryQuarterlyData = JsonConvert.DeserializeObject(jsonData); return balanceSheetHistoryQuarterlyData != null ? (IEnumerable)balanceSheetHistoryQuarterlyData.QuoteSummary.Results. - Select(x => x.BalanceSheetHistoryQuarterly).First().BalanceSheetStatements : Enumerable.Empty(); + Select(x => x.BalanceSheetHistoryQuarterly).First().BalanceSheetStatements : []; } } diff --git a/src/Helpers/CalendarEventsHelper.cs b/src/Helpers/CalendarEventsHelper.cs index e8fa793..cda0705 100644 --- a/src/Helpers/CalendarEventsHelper.cs +++ b/src/Helpers/CalendarEventsHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var calendarEvents = JsonConvert.DeserializeObject(jsonData); - return calendarEvents != null ? (IEnumerable)calendarEvents.QuoteSummary.Results.Select(x => x.CalendarEvents) : Enumerable.Empty(); + return calendarEvents != null ? (IEnumerable)calendarEvents.QuoteSummary.Results.Select(x => x.CalendarEvents) : []; } } diff --git a/src/Helpers/CashflowStatementHistoryHelper.cs b/src/Helpers/CashflowStatementHistoryHelper.cs index 0008e1d..7682bc8 100644 --- a/src/Helpers/CashflowStatementHistoryHelper.cs +++ b/src/Helpers/CashflowStatementHistoryHelper.cs @@ -13,6 +13,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) var balanceSheetHistory = JsonConvert.DeserializeObject(jsonData); return balanceSheetHistory != null ? (IEnumerable)balanceSheetHistory.QuoteSummary.Results. - Select(x => x.CashflowStatementHistory).First().CashflowStatements : Enumerable.Empty(); + Select(x => x.CashflowStatementHistory).First().CashflowStatements : []; } } diff --git a/src/Helpers/CashflowStatementHistoryQuarterlyHelper.cs b/src/Helpers/CashflowStatementHistoryQuarterlyHelper.cs index b5e046e..f360810 100644 --- a/src/Helpers/CashflowStatementHistoryQuarterlyHelper.cs +++ b/src/Helpers/CashflowStatementHistoryQuarterlyHelper.cs @@ -13,6 +13,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) var cashflowStatementHistoryQuarterlyData = JsonConvert.DeserializeObject(jsonData); return cashflowStatementHistoryQuarterlyData != null ? (IEnumerable)cashflowStatementHistoryQuarterlyData.QuoteSummary.Results. - Select(x => x.CashflowStatementHistoryQuarterly).First().CashflowStatements : Enumerable.Empty(); + Select(x => x.CashflowStatementHistoryQuarterly).First().CashflowStatements : []; } } diff --git a/src/Helpers/ChartHelper.cs b/src/Helpers/ChartHelper.cs index 6ea7994..ded1ad7 100644 --- a/src/Helpers/ChartHelper.cs +++ b/src/Helpers/ChartHelper.cs @@ -10,32 +10,23 @@ internal class ChartHelper : YahooJsonBase /// internal override IEnumerable ParseYahooJsonData(string jsonData) { - var chartNodes = JsonNode.Parse(jsonData)!; - var root = chartNodes["chart"]!["result"]![0]; - var dates = root!["timestamp"]?.AsArray().Select(x => x!.GetValue().FromUnixTimeStamp()); - var indicatorRoot = root["indicators"]!["quote"]![0]; + var root = JsonConvert.DeserializeObject(jsonData)?.Chart.Result.FirstOrDefault(); + var result = new ChartInfo + { + DateList = new List(root != null ? root.Timestamp.Select(x => x.FromUnixTimeStamp()) : []), + CloseList = new List(root != null ? root.Indicators.Quote.SelectMany(x => x.Close.Select(y => y.GetValueOrDefault())) : []), + OpenList = new List(root != null ? root.Indicators.Quote.SelectMany(x => x.Open.Select(y => y.GetValueOrDefault())) : []), + HighList = new List(root != null ? root.Indicators.Quote.SelectMany(x => x.High.Select(y => y.GetValueOrDefault())) : []), + VolumeList = new List(root != null ? root.Indicators.Quote.SelectMany(x => x.Volume.Select(y => y.GetValueOrDefault())) : []), + LowList = new List(root != null ? root.Indicators.Quote.SelectMany(x => x.Low.Select(y => y.GetValueOrDefault())) : []) + }; - if (dates == null || indicatorRoot == null || indicatorRoot.AsArray().Count == 0) + if (result.DateList.Count == 0 || result.CloseList.Count == 0 || result.OpenList.Count == 0 || result.HighList.Count == 0 || + result.VolumeList.Count == 0 || result.LowList.Count == 0) { throw new InvalidOperationException("Requested Information Not Available On Yahoo Finance"); } - var closePrices = indicatorRoot!["close"]!.AsArray().Select(x => x != null ? Math.Round(x.GetValue(), 4) : 0); - var openPrices = indicatorRoot!["open"]!.AsArray().Select(x => x != null ? Math.Round(x.GetValue(), 4) : 0); - var lowPrices = indicatorRoot!["low"]!.AsArray().Select(x => x != null ? Math.Round(x.GetValue(), 4) : 0); - var highPrices = indicatorRoot!["high"]!.AsArray().Select(x => x != null ? Math.Round(x.GetValue(), 4) : 0); - var volumes = indicatorRoot!["volume"]!.AsArray().Select(x => x != null ? x.GetValue() : 0); - - var result = new ChartData - { - DateList = new List(dates), - CloseList = new List(closePrices), - OpenList = new List(openPrices), - HighList = new List(highPrices), - VolumeList = new List(volumes), - LowList = new List(lowPrices) - }; - return new[] { result }.Cast(); } } \ No newline at end of file diff --git a/src/Helpers/EarningsHelper.cs b/src/Helpers/EarningsHelper.cs index cdd1942..ad4d5e6 100644 --- a/src/Helpers/EarningsHelper.cs +++ b/src/Helpers/EarningsHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var earnings = JsonConvert.DeserializeObject(jsonData); - return earnings != null ? (IEnumerable)earnings.QuoteSummary.Results.Select(x => x.Earnings) : Enumerable.Empty(); + return earnings != null ? (IEnumerable)earnings.QuoteSummary.Results.Select(x => x.Earnings) : []; } } diff --git a/src/Helpers/EarningsHistoryHelper.cs b/src/Helpers/EarningsHistoryHelper.cs index 8efeda2..3723e80 100644 --- a/src/Helpers/EarningsHistoryHelper.cs +++ b/src/Helpers/EarningsHistoryHelper.cs @@ -11,7 +11,8 @@ internal class EarningsHistoryHelper : YahooJsonBase internal override IEnumerable ParseYahooJsonData(string jsonData) { var earningsHistory = JsonConvert.DeserializeObject(jsonData); + var result = earningsHistory != null ? (IEnumerable?)earningsHistory.QuoteSummary.Results.Select(x => x.EarningsHistory).FirstOrDefault()?.History : []; - return earningsHistory != null ? (IEnumerable)earningsHistory.QuoteSummary.Results.Select(x => x.EarningsHistory).First().History : Enumerable.Empty(); + return result ?? []; } } diff --git a/src/Helpers/EarningsTrendHelper.cs b/src/Helpers/EarningsTrendHelper.cs index 89469d1..c133e45 100644 --- a/src/Helpers/EarningsTrendHelper.cs +++ b/src/Helpers/EarningsTrendHelper.cs @@ -13,6 +13,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) var earningsTrend = JsonConvert.DeserializeObject(jsonData); return earningsTrend != null ? (IEnumerable)earningsTrend.QuoteSummary.Results. - Select(x => x.EarningsTrend).First().Trends : Enumerable.Empty(); + Select(x => x.EarningsTrend).First().Trends : []; } } diff --git a/src/Helpers/EsgScoresHelper.cs b/src/Helpers/EsgScoresHelper.cs index 774a083..b9ce6c3 100644 --- a/src/Helpers/EsgScoresHelper.cs +++ b/src/Helpers/EsgScoresHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var esgScores = JsonConvert.DeserializeObject(jsonData); - return esgScores != null ? (IEnumerable)esgScores.QuoteSummary.Results.Select(x => x.EsgScores) : Enumerable.Empty(); + return esgScores != null ? (IEnumerable)esgScores.QuoteSummary.Results.Select(x => x.EsgScores) : []; } } diff --git a/src/Helpers/FinancialDataHelper.cs b/src/Helpers/FinancialDataHelper.cs index af5e8f8..f2b4e17 100644 --- a/src/Helpers/FinancialDataHelper.cs +++ b/src/Helpers/FinancialDataHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var financialData = JsonConvert.DeserializeObject(jsonData); - return financialData != null ? (IEnumerable)financialData.QuoteSummary.Results.Select(x => x.FinancialData) : Enumerable.Empty(); + return financialData != null ? (IEnumerable)financialData.QuoteSummary.Results.Select(x => x.FinancialData) : []; } } diff --git a/src/Helpers/FundOwnershipHelper.cs b/src/Helpers/FundOwnershipHelper.cs index 22de06e..1b19484 100644 --- a/src/Helpers/FundOwnershipHelper.cs +++ b/src/Helpers/FundOwnershipHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var fundOwnership = JsonConvert.DeserializeObject(jsonData); - return fundOwnership != null ? (IEnumerable)fundOwnership.QuoteSummary.Results.Select(x => x.FundOwnership).First().OwnershipList : Enumerable.Empty(); + return fundOwnership != null ? (IEnumerable)fundOwnership.QuoteSummary.Results.Select(x => x.FundOwnership).First().OwnershipList : []; } } diff --git a/src/Helpers/FundProfileHelper.cs b/src/Helpers/FundProfileHelper.cs index 7dc3b42..263c7c1 100644 --- a/src/Helpers/FundProfileHelper.cs +++ b/src/Helpers/FundProfileHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var fundProfile = JsonConvert.DeserializeObject(jsonData); - return fundProfile != null ? (IEnumerable)fundProfile.QuoteSummary.Results.Select(x => x.FundProfile) : Enumerable.Empty(); + return fundProfile != null ? (IEnumerable)fundProfile.QuoteSummary.Results.Select(x => x.FundProfile) : []; } } diff --git a/src/Helpers/IncomeStatementHistoryHelper.cs b/src/Helpers/IncomeStatementHistoryHelper.cs index 7cd579d..227c518 100644 --- a/src/Helpers/IncomeStatementHistoryHelper.cs +++ b/src/Helpers/IncomeStatementHistoryHelper.cs @@ -13,6 +13,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) var incomeStatementHistory = JsonConvert.DeserializeObject(jsonData); return incomeStatementHistory != null ? (IEnumerable)incomeStatementHistory.QuoteSummary.Results. - Select(x => x.IncomeStatementHistory).First().IncomeStatementHistoryInfo : Enumerable.Empty(); + Select(x => x.IncomeStatementHistory).First().IncomeStatementHistoryInfo : []; } } diff --git a/src/Helpers/IncomeStatementHistoryQuarterlyHelper.cs b/src/Helpers/IncomeStatementHistoryQuarterlyHelper.cs index abd5519..60a733e 100644 --- a/src/Helpers/IncomeStatementHistoryQuarterlyHelper.cs +++ b/src/Helpers/IncomeStatementHistoryQuarterlyHelper.cs @@ -13,6 +13,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) var incomeStatementHistoryQuarterly = JsonConvert.DeserializeObject(jsonData); return incomeStatementHistoryQuarterly != null ? (IEnumerable)incomeStatementHistoryQuarterly.QuoteSummary.Results. - Select(x => x.IncomeStatementHistoryQuarterly).First().IncomeStatementHistory : Enumerable.Empty(); + Select(x => x.IncomeStatementHistoryQuarterly).First().IncomeStatementHistory : []; } } diff --git a/src/Helpers/IndexTrendHelper.cs b/src/Helpers/IndexTrendHelper.cs index baf62a9..ab8397a 100644 --- a/src/Helpers/IndexTrendHelper.cs +++ b/src/Helpers/IndexTrendHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var indexTrend = JsonConvert.DeserializeObject(jsonData); - return indexTrend != null ? (IEnumerable)indexTrend.QuoteSummary.Results.Select(x => x.IndexTrend) : Enumerable.Empty(); + return indexTrend != null ? (IEnumerable)indexTrend.QuoteSummary.Results.Select(x => x.IndexTrend) : []; } } diff --git a/src/Helpers/InsiderHolderHelper.cs b/src/Helpers/InsiderHolderHelper.cs index 7cd9142..b3489d6 100644 --- a/src/Helpers/InsiderHolderHelper.cs +++ b/src/Helpers/InsiderHolderHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var insiderHolderData = JsonConvert.DeserializeObject(jsonData); - return insiderHolderData != null ? (IEnumerable)insiderHolderData.QuoteSummary.Results.Select(x => x.InsiderHolders).First().Holders : Enumerable.Empty(); + return insiderHolderData != null ? (IEnumerable)insiderHolderData.QuoteSummary.Results.Select(x => x.InsiderHolders).First().Holders : []; } } diff --git a/src/Helpers/InsiderTransactionHelper.cs b/src/Helpers/InsiderTransactionHelper.cs index 0672d15..97fec49 100644 --- a/src/Helpers/InsiderTransactionHelper.cs +++ b/src/Helpers/InsiderTransactionHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var insiderTransactionData = JsonConvert.DeserializeObject(jsonData); - return insiderTransactionData != null ? (IEnumerable)insiderTransactionData.QuoteSummary.Results.Select(x => x.InsiderTransactions).First().Transactions : Enumerable.Empty(); + return insiderTransactionData != null ? (IEnumerable)insiderTransactionData.QuoteSummary.Results.Select(x => x.InsiderTransactions).First().Transactions : []; } } diff --git a/src/Helpers/InstitutionHelper.cs b/src/Helpers/InstitutionHelper.cs index 32d3617..ff6dd59 100644 --- a/src/Helpers/InstitutionHelper.cs +++ b/src/Helpers/InstitutionHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var institutionData = JsonConvert.DeserializeObject(jsonData); - return institutionData != null ? (IEnumerable)institutionData.Finance.Results : Enumerable.Empty(); + return institutionData != null ? (IEnumerable)institutionData.Finance.Results : []; } } diff --git a/src/Helpers/InstitutionOwnershipHelper.cs b/src/Helpers/InstitutionOwnershipHelper.cs index 1ffff0b..927078b 100644 --- a/src/Helpers/InstitutionOwnershipHelper.cs +++ b/src/Helpers/InstitutionOwnershipHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var institutionOwnership = JsonConvert.DeserializeObject(jsonData); - return institutionOwnership != null ? (IEnumerable)institutionOwnership.QuoteSummary.Results.Select(x => x.InstitutionOwnership).First().OwnershipList : Enumerable.Empty(); + return institutionOwnership != null ? (IEnumerable)institutionOwnership.QuoteSummary.Results.Select(x => x.InstitutionOwnership).First().OwnershipList : []; } } diff --git a/src/Helpers/KeyStatisticsHelper.cs b/src/Helpers/KeyStatisticsHelper.cs index 30f5198..6ff6287 100644 --- a/src/Helpers/KeyStatisticsHelper.cs +++ b/src/Helpers/KeyStatisticsHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var keyStatisticData = JsonConvert.DeserializeObject(jsonData); - return keyStatisticData != null ? (IEnumerable)keyStatisticData.QuoteSummary.Results.Select(x => x.DefaultKeyStatistics) : Enumerable.Empty(); + return keyStatisticData != null ? (IEnumerable)keyStatisticData.QuoteSummary.Results.Select(x => x.DefaultKeyStatistics) : []; } } diff --git a/src/Helpers/MajorDirectHoldersHelper.cs b/src/Helpers/MajorDirectHoldersHelper.cs index 1addb88..9769c4f 100644 --- a/src/Helpers/MajorDirectHoldersHelper.cs +++ b/src/Helpers/MajorDirectHoldersHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var majorDirectHolders = JsonConvert.DeserializeObject(jsonData); - return majorDirectHolders != null ? (IEnumerable)majorDirectHolders.QuoteSummary.Results.Select(x => x.MajorDirectHolders).First().Holders : Enumerable.Empty(); + return majorDirectHolders != null ? (IEnumerable)majorDirectHolders.QuoteSummary.Results.Select(x => x.MajorDirectHolders).First().Holders : []; } } diff --git a/src/Helpers/MajorHoldersBreakdownHelper.cs b/src/Helpers/MajorHoldersBreakdownHelper.cs index 642c2c0..60bb876 100644 --- a/src/Helpers/MajorHoldersBreakdownHelper.cs +++ b/src/Helpers/MajorHoldersBreakdownHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var majorHoldersBreakdown = JsonConvert.DeserializeObject(jsonData); - return majorHoldersBreakdown != null ? (IEnumerable)majorHoldersBreakdown.QuoteSummary.Results.Select(x => x.MajorHoldersBreakdown) : Enumerable.Empty(); + return majorHoldersBreakdown != null ? (IEnumerable)majorHoldersBreakdown.QuoteSummary.Results.Select(x => x.MajorHoldersBreakdown) : []; } } diff --git a/src/Helpers/MarketSummaryHelper.cs b/src/Helpers/MarketSummaryHelper.cs index 8488846..a101b90 100644 --- a/src/Helpers/MarketSummaryHelper.cs +++ b/src/Helpers/MarketSummaryHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var marketSummary = JsonConvert.DeserializeObject(jsonData); - return marketSummary != null ? (IEnumerable)marketSummary.MarketSummaryResponse.Results : Enumerable.Empty(); + return marketSummary != null ? (IEnumerable)marketSummary.MarketSummaryResponse.Results : []; } } diff --git a/src/Helpers/NetSharePurchaseActivityHelper.cs b/src/Helpers/NetSharePurchaseActivityHelper.cs index 7b04d71..791388d 100644 --- a/src/Helpers/NetSharePurchaseActivityHelper.cs +++ b/src/Helpers/NetSharePurchaseActivityHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var netSharePurchaseActivity = JsonConvert.DeserializeObject(jsonData); - return netSharePurchaseActivity != null ? (IEnumerable)netSharePurchaseActivity.QuoteSummary.Results.Select(x => x.NetSharePurchaseActivity) : Enumerable.Empty(); + return netSharePurchaseActivity != null ? (IEnumerable)netSharePurchaseActivity.QuoteSummary.Results.Select(x => x.NetSharePurchaseActivity) : []; } } diff --git a/src/Helpers/PriceHelper.cs b/src/Helpers/PriceHelper.cs index 1d35e73..b4409f0 100644 --- a/src/Helpers/PriceHelper.cs +++ b/src/Helpers/PriceHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var priceInfo = JsonConvert.DeserializeObject(jsonData); - return priceInfo != null ? (IEnumerable)priceInfo.QuoteSummary.Results.Select(x => x.Price) : Enumerable.Empty(); + return priceInfo != null ? (IEnumerable)priceInfo.QuoteSummary.Results.Select(x => x.Price) : []; } } diff --git a/src/Helpers/QuoteTypeHelper.cs b/src/Helpers/QuoteTypeHelper.cs index a751486..061330a 100644 --- a/src/Helpers/QuoteTypeHelper.cs +++ b/src/Helpers/QuoteTypeHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var quoteType = JsonConvert.DeserializeObject(jsonData); - return quoteType != null ? (IEnumerable)quoteType.QuoteSummary.Results.Select(x => x.QuoteType) : Enumerable.Empty(); + return quoteType != null ? (IEnumerable)quoteType.QuoteSummary.Results.Select(x => x.QuoteType) : []; } } diff --git a/src/Helpers/RealTimeQuoteHelper.cs b/src/Helpers/RealTimeQuoteHelper.cs index aec69e8..95db0df 100644 --- a/src/Helpers/RealTimeQuoteHelper.cs +++ b/src/Helpers/RealTimeQuoteHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var realTimeQuoteData = JsonConvert.DeserializeObject(jsonData); - return realTimeQuoteData != null ? (IEnumerable)realTimeQuoteData.QuoteResponse.Results : Enumerable.Empty(); + return realTimeQuoteData != null ? (IEnumerable)realTimeQuoteData.QuoteResponse.Results : []; } } diff --git a/src/Helpers/RecommendationHelper.cs b/src/Helpers/RecommendationHelper.cs index 5b906dc..3282251 100644 --- a/src/Helpers/RecommendationHelper.cs +++ b/src/Helpers/RecommendationHelper.cs @@ -18,6 +18,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) throw new InvalidOperationException("Requested Information Not Available On Yahoo Finance"); } - return rawRecommendData != null ? (IEnumerable)rawRecommendData.Finance.Results.First().RecommendedSymbols : Enumerable.Empty(); + return rawRecommendData != null ? (IEnumerable)rawRecommendData.Finance.Results.First().RecommendedSymbols : []; } } \ No newline at end of file diff --git a/src/Helpers/RecommendationTrendHelper.cs b/src/Helpers/RecommendationTrendHelper.cs index e8f86bf..020f08c 100644 --- a/src/Helpers/RecommendationTrendHelper.cs +++ b/src/Helpers/RecommendationTrendHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var recommendationTrend = JsonConvert.DeserializeObject(jsonData); - return recommendationTrend != null ? (IEnumerable)recommendationTrend.QuoteSummary.Results.Select(x => x.RecommendationTrend).First().Trend : Enumerable.Empty(); + return recommendationTrend != null ? (IEnumerable)recommendationTrend.QuoteSummary.Results.Select(x => x.RecommendationTrend).First().Trend : []; } } diff --git a/src/Helpers/ScreenerHelper.cs b/src/Helpers/ScreenerHelper.cs index 3d45df6..b562e5e 100644 --- a/src/Helpers/ScreenerHelper.cs +++ b/src/Helpers/ScreenerHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var screener = JsonConvert.DeserializeObject(jsonData); - return screener != null ? (IEnumerable)screener.Finance.Results : Enumerable.Empty(); + return screener != null ? (IEnumerable)screener.Finance.Results : []; } } diff --git a/src/Helpers/SecFilingsHelper.cs b/src/Helpers/SecFilingsHelper.cs index 9a79dba..7611bba 100644 --- a/src/Helpers/SecFilingsHelper.cs +++ b/src/Helpers/SecFilingsHelper.cs @@ -9,6 +9,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var secFilings = JsonConvert.DeserializeObject(jsonData); - return secFilings != null ? (IEnumerable)secFilings.QuoteSummary.Results.Select(x => x.SecFilings).First().Filings : Enumerable.Empty(); + return secFilings != null ? (IEnumerable)secFilings.QuoteSummary.Results.Select(x => x.SecFilings).First().Filings : []; } } diff --git a/src/Helpers/SectorTrendHelper.cs b/src/Helpers/SectorTrendHelper.cs index fee4260..d7ca2cf 100644 --- a/src/Helpers/SectorTrendHelper.cs +++ b/src/Helpers/SectorTrendHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var sectorTrend = JsonConvert.DeserializeObject(jsonData); - return sectorTrend != null ? (IEnumerable)sectorTrend.QuoteSummary.Results.Select(x => x.SectorTrend) : Enumerable.Empty(); + return sectorTrend != null ? (IEnumerable)sectorTrend.QuoteSummary.Results.Select(x => x.SectorTrend) : []; } } diff --git a/src/Helpers/SparkChartHelper.cs b/src/Helpers/SparkChartHelper.cs index 04e4578..7e69d1b 100644 --- a/src/Helpers/SparkChartHelper.cs +++ b/src/Helpers/SparkChartHelper.cs @@ -10,9 +10,9 @@ internal class SparkChartHelper : YahooJsonBase /// internal override IEnumerable ParseYahooJsonData(string jsonData) { - var rootObjects = JsonDocument.Parse(jsonData).RootElement.EnumerateObject(); - var sparkChartData = rootObjects.Select(x => JsonConvert.DeserializeObject(x.Value.ToString())); + var root = JObject.Parse(jsonData).Children().FirstOrDefault(); + var result = root?.FirstOrDefault()?.ToObject(); - return sparkChartData != null ? (IEnumerable)sparkChartData : Enumerable.Empty(); + return new[] { result }.Cast(); } } diff --git a/src/Helpers/StocksOwnedHelper.cs b/src/Helpers/StocksOwnedHelper.cs index 3f2a8df..8a2bd84 100644 --- a/src/Helpers/StocksOwnedHelper.cs +++ b/src/Helpers/StocksOwnedHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var stocksOwned = JsonConvert.DeserializeObject(jsonData); - return stocksOwned != null ? (IEnumerable)stocksOwned.Finance.Results : Enumerable.Empty(); + return stocksOwned != null ? (IEnumerable)stocksOwned.Finance.Results : []; } } diff --git a/src/Helpers/SummaryDetailsHelper.cs b/src/Helpers/SummaryDetailsHelper.cs index fb51b97..59c1de8 100644 --- a/src/Helpers/SummaryDetailsHelper.cs +++ b/src/Helpers/SummaryDetailsHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var summaryDetailsData = JsonConvert.DeserializeObject(jsonData); - return summaryDetailsData != null ? (IEnumerable)summaryDetailsData.QuoteSummary.Results.Select(x => x.SummaryDetail) : Enumerable.Empty(); + return summaryDetailsData != null ? (IEnumerable)summaryDetailsData.QuoteSummary.Results.Select(x => x.SummaryDetail) : []; } } diff --git a/src/Helpers/TrendingHelper.cs b/src/Helpers/TrendingHelper.cs index e9cf7f1..aa81d9e 100644 --- a/src/Helpers/TrendingHelper.cs +++ b/src/Helpers/TrendingHelper.cs @@ -11,6 +11,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var rawTrendingData = JsonConvert.DeserializeObject(jsonData); - return rawTrendingData != null ? (IEnumerable)rawTrendingData.Finance.Results.First().Quotes.Select(x => x.Symbol) : Enumerable.Empty(); + return rawTrendingData != null ? (IEnumerable)rawTrendingData.Finance.Results.First().Quotes.Select(x => x.Symbol) : []; } } \ No newline at end of file diff --git a/src/Helpers/TrendingStocksHelper.cs b/src/Helpers/TrendingStocksHelper.cs index fb61bc6..0e29e12 100644 --- a/src/Helpers/TrendingStocksHelper.cs +++ b/src/Helpers/TrendingStocksHelper.cs @@ -12,6 +12,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) { var trendingStocks = JsonConvert.DeserializeObject(jsonData); - return trendingStocks != null ? (IEnumerable)trendingStocks.Finance.Results : Enumerable.Empty(); + return trendingStocks != null ? (IEnumerable)trendingStocks.Finance.Results : []; } } diff --git a/src/Helpers/UpgradeDowngradeHistoryHelper.cs b/src/Helpers/UpgradeDowngradeHistoryHelper.cs index 2052d89..a0ed2eb 100644 --- a/src/Helpers/UpgradeDowngradeHistoryHelper.cs +++ b/src/Helpers/UpgradeDowngradeHistoryHelper.cs @@ -13,6 +13,6 @@ internal override IEnumerable ParseYahooJsonData(string jsonData) var upgradeDowngradeHistory = JsonConvert.DeserializeObject(jsonData); return upgradeDowngradeHistory != null ? (IEnumerable)upgradeDowngradeHistory.QuoteSummary.Results. - Select(x => x.UpgradeDowngradeHistory).First().History : Enumerable.Empty(); + Select(x => x.UpgradeDowngradeHistory).First().History : []; } } diff --git a/src/Helpers/Usings.cs b/src/Helpers/Usings.cs index 3ea4703..e09a546 100644 --- a/src/Helpers/Usings.cs +++ b/src/Helpers/Usings.cs @@ -6,7 +6,6 @@ global using static OoplesFinance.YahooFinanceAPI.Helpers.DownloadHelper; global using static OoplesFinance.YahooFinanceAPI.Helpers.UrlHelper; global using OoplesFinance.YahooFinanceAPI.Interfaces; -global using System.Text.Json; global using Newtonsoft.Json; -global using System.Text.Json.Nodes; -global using System.Net.Http; \ No newline at end of file +global using System.Net.Http; +global using Newtonsoft.Json.Linq; \ No newline at end of file diff --git a/src/Models/AssetProfileData.cs b/src/Models/AssetProfileData.cs index 6812bd7..cdf4c07 100644 --- a/src/Models/AssetProfileData.cs +++ b/src/Models/AssetProfileData.cs @@ -36,7 +36,7 @@ public class AssetProfile public int? FullTimeEmployees { get; set; } [JsonProperty("companyOfficers")] - public List CompanyOfficers { get; set; } = new(); + public List CompanyOfficers { get; set; } = []; [JsonProperty("auditRisk")] public int? AuditRisk { get; set; } @@ -108,7 +108,7 @@ public class ExercisedValue public class AssetProfileQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/BalanceSheetHistoryData.cs b/src/Models/BalanceSheetHistoryData.cs index 106a3db..7e3252d 100644 --- a/src/Models/BalanceSheetHistoryData.cs +++ b/src/Models/BalanceSheetHistoryData.cs @@ -15,7 +15,7 @@ public class AccountsPayable public class BalanceSheetHistory { [JsonProperty("balanceSheetStatements")] - public List BalanceSheetStatements { get; set; } = new(); + public List BalanceSheetStatements { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } @@ -267,7 +267,7 @@ public class PropertyPlantEquipment public class BalanceSheetHistoryQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/BalanceSheetHistoryQuarterlyData.cs b/src/Models/BalanceSheetHistoryQuarterlyData.cs index 1cb9558..14cc595 100644 --- a/src/Models/BalanceSheetHistoryQuarterlyData.cs +++ b/src/Models/BalanceSheetHistoryQuarterlyData.cs @@ -3,7 +3,7 @@ public class BalanceSheetHistoryQuarterly { [JsonProperty("balanceSheetStatements")] - public List BalanceSheetStatements { get; set; } = new(); + public List BalanceSheetStatements { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } @@ -12,7 +12,7 @@ public class BalanceSheetHistoryQuarterly public class BalanceSheetHistoryQuarterlyQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/CalendarEventsData.cs b/src/Models/CalendarEventsData.cs index 4e72c5b..30e85e2 100644 --- a/src/Models/CalendarEventsData.cs +++ b/src/Models/CalendarEventsData.cs @@ -27,7 +27,7 @@ public class DividendDate public class Earnings { [JsonProperty("earningsDate")] - public List EarningsDate { get; set; } = new(); + public List EarningsDate { get; set; } = []; [JsonProperty("earningsAverage")] public EarningsAverage EarningsAverage { get; set; } = new(); @@ -87,7 +87,7 @@ public class EarningsLow public class CalendarEventsQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/CashFlowStatementHistoryData.cs b/src/Models/CashFlowStatementHistoryData.cs index e00901b..a0483c4 100644 --- a/src/Models/CashFlowStatementHistoryData.cs +++ b/src/Models/CashFlowStatementHistoryData.cs @@ -81,7 +81,7 @@ public class CashflowStatement public class CashflowStatementHistory { [JsonProperty("cashflowStatements")] - public List CashflowStatements { get; set; } = new(); + public List CashflowStatements { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } @@ -258,7 +258,7 @@ public class OtherCashflowsFromInvestingActivities public class CashflowStatementHistoryQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/CashflowStatementHistoryQuarterlyData.cs b/src/Models/CashflowStatementHistoryQuarterlyData.cs index a7d18da..d133254 100644 --- a/src/Models/CashflowStatementHistoryQuarterlyData.cs +++ b/src/Models/CashflowStatementHistoryQuarterlyData.cs @@ -3,7 +3,7 @@ public class CashflowStatementHistoryQuarterly { [JsonProperty("cashflowStatements")] - public List CashflowStatements { get; set; } = new(); + public List CashflowStatements { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } @@ -12,7 +12,7 @@ public class CashflowStatementHistoryQuarterly public class CashflowStatementHistoryQuarterlyQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/ChartData.cs b/src/Models/ChartData.cs index 4528c0d..56a576b 100644 --- a/src/Models/ChartData.cs +++ b/src/Models/ChartData.cs @@ -2,21 +2,156 @@ public class ChartData { - [JsonProperty("timestamp")] - public List DateList { get; set; } = new(); + [JsonProperty("result")] + public List Result { get; set; } = []; - [JsonProperty("close")] - public List CloseList { get; set; } = new(); + [JsonProperty("error")] + public object Error { get; set; } = new(); +} - [JsonProperty("high")] - public List HighList { get; set; } = new(); +public class CurrentTradingPeriod +{ + [JsonProperty("pre")] + public TradingPeriod Pre { get; set; } = new(); - [JsonProperty("low")] - public List LowList { get; set; } = new(); + [JsonProperty("regular")] + public TradingPeriod Regular { get; set; } = new(); + + [JsonProperty("post")] + public TradingPeriod Post { get; set; } = new(); +} + +public class Indicators +{ + [JsonProperty("quote")] + public List Quote { get; set; } = []; +} + +public class Meta +{ + [JsonProperty("currency")] + public string Currency { get; set; } = string.Empty; + + [JsonProperty("symbol")] + public string Symbol { get; set; } = string.Empty; + + [JsonProperty("exchangeName")] + public string ExchangeName { get; set; } = string.Empty; + + [JsonProperty("instrumentType")] + public string InstrumentType { get; set; } = string.Empty; + + [JsonProperty("firstTradeDate")] + public int? FirstTradeDate { get; set; } + + [JsonProperty("regularMarketTime")] + public int? RegularMarketTime { get; set; } + + [JsonProperty("hasPrePostMarketData")] + public bool? HasPrePostMarketData { get; set; } + + [JsonProperty("gmtoffset")] + public int? Gmtoffset { get; set; } + + [JsonProperty("timezone")] + public string Timezone { get; set; } = string.Empty; + + [JsonProperty("exchangeTimezoneName")] + public string ExchangeTimezoneName { get; set; } = string.Empty; + + [JsonProperty("regularMarketPrice")] + public double? RegularMarketPrice { get; set; } + + [JsonProperty("chartPreviousClose")] + public double? ChartPreviousClose { get; set; } + + [JsonProperty("previousClose")] + public double? PreviousClose { get; set; } + + [JsonProperty("scale")] + public int? Scale { get; set; } + + [JsonProperty("priceHint")] + public int? PriceHint { get; set; } + + [JsonProperty("currentTradingPeriod")] + public CurrentTradingPeriod CurrentTradingPeriod { get; set; } = new(); + + [JsonProperty("tradingPeriods")] + public List> TradingPeriods { get; set; } = []; + + [JsonProperty("dataGranularity")] + public string DataGranularity { get; set; } = string.Empty; + + [JsonProperty("range")] + public string Range { get; set; } = string.Empty; + [JsonProperty("validRanges")] + public List ValidRanges { get; set; } = []; +} + +public class TradingPeriod +{ + [JsonProperty("timezone")] + public string Timezone { get; set; } = string.Empty; + + [JsonProperty("end")] + public int? End { get; set; } + + [JsonProperty("start")] + public int? Start { get; set; } + + [JsonProperty("gmtoffset")] + public int? Gmtoffset { get; set; } +} + +public class ChartQuote +{ [JsonProperty("open")] - public List OpenList { get; set; } = new(); + public List Open { get; set; } = []; + + [JsonProperty("low")] + public List Low { get; set; } = []; [JsonProperty("volume")] - public List VolumeList { get; set; } = new(); + public List Volume { get; set; } = []; + + [JsonProperty("close")] + public List Close { get; set; } = []; + + [JsonProperty("high")] + public List High { get; set; } = []; } + +public class ChartResult +{ + [JsonProperty("meta")] + public Meta Meta { get; set; } = new(); + + [JsonProperty("timestamp")] + public List Timestamp { get; set; } = []; + + [JsonProperty("indicators")] + public Indicators Indicators { get; set; } = new(); +} + +public class ChartRoot +{ + [JsonProperty("chart")] + public ChartData Chart { get; set; } = new(); +} + +public class ChartInfo +{ + public List DateList { get; set; } = []; + + public List OpenList { get; set; } = []; + + public List HighList { get; set; } = []; + + public List LowList { get; set; } = []; + + public List CloseList { get; set; } = []; + + public List VolumeList { get; set; } = []; +} \ No newline at end of file diff --git a/src/Models/EarningsData.cs b/src/Models/EarningsData.cs index a0fda5c..851e2b6 100644 --- a/src/Models/EarningsData.cs +++ b/src/Models/EarningsData.cs @@ -45,7 +45,7 @@ public class EarningsInfo public class EarningsChart { [JsonProperty("quarterly")] - public List Quarterly { get; set; } = new(); + public List Quarterly { get; set; } = []; [JsonProperty("currentQuarterEstimate")] public CurrentQuarterEstimate CurrentQuarterEstimate { get; set; } = new(); @@ -57,7 +57,7 @@ public class EarningsChart public int? CurrentQuarterEstimateYear { get; set; } [JsonProperty("earningsDate")] - public List EarningsDate { get; set; } = new(); + public List EarningsDate { get; set; } = []; } public class EarningsEstimateInfo @@ -72,10 +72,10 @@ public class EarningsEstimateInfo public class FinancialsChart { [JsonProperty("yearly")] - public List Yearly { get; set; } = new(); + public List Yearly { get; set; } = []; [JsonProperty("quarterly")] - public List Quarterly { get; set; } = new(); + public List Quarterly { get; set; } = []; } public class Quarterly @@ -99,7 +99,7 @@ public class Quarterly public class EarningsQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/EarningsHistoryData.cs b/src/Models/EarningsHistoryData.cs index 24a4eb6..c4aee32 100644 --- a/src/Models/EarningsHistoryData.cs +++ b/src/Models/EarningsHistoryData.cs @@ -3,7 +3,7 @@ public class EarningsHistory { [JsonProperty("history")] - public List History { get; set; } = new(); + public List History { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } @@ -72,7 +72,7 @@ public class Quarter public class EarningsHistoryQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/EarningsTrendData.cs b/src/Models/EarningsTrendData.cs index 44a270d..7e623a0 100644 --- a/src/Models/EarningsTrendData.cs +++ b/src/Models/EarningsTrendData.cs @@ -105,7 +105,7 @@ public class EarningsEstimate public class EarningsTrend { [JsonProperty("trend")] - public List Trends { get; set; } = new(); + public List Trends { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } @@ -183,7 +183,7 @@ public class NumberOfAnalysts public class EarningsTrendQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/EsgScoresData.cs b/src/Models/EsgScoresData.cs index 7592c05..bf49f60 100644 --- a/src/Models/EsgScoresData.cs +++ b/src/Models/EsgScoresData.cs @@ -54,7 +54,7 @@ public class EsgScores public string PeerGroup { get; set; } = string.Empty; [JsonProperty("relatedControversy")] - public List RelatedControversy { get; set; } = new(); + public List RelatedControversy { get; set; } = []; [JsonProperty("peerEsgScorePerformance")] public PeerEsgScorePerformance PeerEsgScorePerformance { get; set; } = new(); @@ -219,7 +219,7 @@ public class Percentile public class EsgScoresQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/FinancialData.cs b/src/Models/FinancialData.cs index a72501a..bb3f60c 100644 --- a/src/Models/FinancialData.cs +++ b/src/Models/FinancialData.cs @@ -228,7 +228,7 @@ public class QuickRatio public class FinancialQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/FundOwnershipData.cs b/src/Models/FundOwnershipData.cs index c988c13..27ec20d 100644 --- a/src/Models/FundOwnershipData.cs +++ b/src/Models/FundOwnershipData.cs @@ -3,7 +3,7 @@ public class FundOwnership { [JsonProperty("ownershipList")] - public List OwnershipList { get; set; } = new(); + public List OwnershipList { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } @@ -12,7 +12,7 @@ public class FundOwnership public class FundOwnershipQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/FundProfileData.cs b/src/Models/FundProfileData.cs index 88940ac..55b8284 100644 --- a/src/Models/FundProfileData.cs +++ b/src/Models/FundProfileData.cs @@ -153,7 +153,7 @@ public class FundProfile public SubseqAipInvestment SubseqAipInvestment { get; set; } = new(); [JsonProperty("brokerages")] - public List Brokerages { get; set; } = new(); + public List Brokerages { get; set; } = []; } public class GrossExpRatio @@ -230,7 +230,7 @@ public class ProjectionValuesCat public class FundProfileQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/IncomeStatementHistoryData.cs b/src/Models/IncomeStatementHistoryData.cs index 2da02f6..2eb0960 100644 --- a/src/Models/IncomeStatementHistoryData.cs +++ b/src/Models/IncomeStatementHistoryData.cs @@ -63,7 +63,7 @@ public class IncomeBeforeTax public class IncomeStatementHistory { [JsonProperty("incomeStatementHistory")] - public List IncomeStatementHistoryInfo { get; set; } = new(); + public List IncomeStatementHistoryInfo { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } @@ -217,7 +217,7 @@ public class OtherOperatingExpenses public class IncomeStatementHistoryQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/IncomeStatementHistoryQuarterlyData.cs b/src/Models/IncomeStatementHistoryQuarterlyData.cs index 4586a87..2a25cbf 100644 --- a/src/Models/IncomeStatementHistoryQuarterlyData.cs +++ b/src/Models/IncomeStatementHistoryQuarterlyData.cs @@ -78,7 +78,7 @@ public class IncomeStatementHistoryItem public class IncomeStatementHistoryQuarterly { [JsonProperty("incomeStatementHistory")] - public List IncomeStatementHistory { get; set; } = new(); + public List IncomeStatementHistory { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } @@ -87,7 +87,7 @@ public class IncomeStatementHistoryQuarterly public class IncomeStatementHistoryQuarterlyQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/IndexTrendData.cs b/src/Models/IndexTrendData.cs index 5f45c75..847844b 100644 --- a/src/Models/IndexTrendData.cs +++ b/src/Models/IndexTrendData.cs @@ -33,7 +33,7 @@ public class IndexTrend public PegRatio PegRatio { get; set; } = new(); [JsonProperty("estimates")] - public List Estimates { get; set; } = new(); + public List Estimates { get; set; } = []; } public class PeRatio @@ -48,7 +48,7 @@ public class PeRatio public class IndexTrendQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/InsiderHolderData.cs b/src/Models/InsiderHolderData.cs index 712e86a..41e7df7 100644 --- a/src/Models/InsiderHolderData.cs +++ b/src/Models/InsiderHolderData.cs @@ -36,7 +36,7 @@ public class InsiderHolder public class InsiderHolders { [JsonProperty("holders")] - public List Holders { get; set; } = new(); + public List Holders { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } @@ -96,7 +96,7 @@ public class PositionIndirectDate public class InsiderHolderQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/InsiderTransactionData.cs b/src/Models/InsiderTransactionData.cs index e1d47eb..1a63b17 100644 --- a/src/Models/InsiderTransactionData.cs +++ b/src/Models/InsiderTransactionData.cs @@ -3,7 +3,7 @@ public class InsiderTransactions { [JsonProperty("transactions")] - public List Transactions { get; set; } = new(); + public List Transactions { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } @@ -12,7 +12,7 @@ public class InsiderTransactions public class InsiderTransactionQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/InsightsData.cs b/src/Models/InsightsData.cs index 3a6e973..c5cb78a 100644 --- a/src/Models/InsightsData.cs +++ b/src/Models/InsightsData.cs @@ -111,7 +111,7 @@ public class InsightsResult public InstrumentInfo InstrumentInfo { get; set; } = new(); [JsonProperty("reports")] - public List Reports { get; set; } = new(); + public List Reports { get; set; } = []; [JsonProperty("companySnapshot")] public CompanySnapshot CompanySnapshot { get; set; } = new(); diff --git a/src/Models/InstitutionOwnershipData.cs b/src/Models/InstitutionOwnershipData.cs index 8c4df04..36e1c93 100644 --- a/src/Models/InstitutionOwnershipData.cs +++ b/src/Models/InstitutionOwnershipData.cs @@ -3,7 +3,7 @@ public class InstitutionOwnership { [JsonProperty("ownershipList")] - public List OwnershipList { get; set; } = new(); + public List OwnershipList { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } @@ -54,7 +54,7 @@ public class Position public class InstitutionOwnershipQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/KeyStatisticData.cs b/src/Models/KeyStatisticData.cs index 949dfe0..705b78a 100644 --- a/src/Models/KeyStatisticData.cs +++ b/src/Models/KeyStatisticData.cs @@ -433,7 +433,7 @@ public class ProfitMargins public class QuoteSummaryStatistic { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/MajorDirectHoldersData.cs b/src/Models/MajorDirectHoldersData.cs index ef5b208..ecc54af 100644 --- a/src/Models/MajorDirectHoldersData.cs +++ b/src/Models/MajorDirectHoldersData.cs @@ -3,7 +3,7 @@ public class MajorDirectHolders { [JsonProperty("holders")] - public List Holders { get; set; } = new(); + public List Holders { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } @@ -12,7 +12,7 @@ public class MajorDirectHolders public class MajorDirectHoldersQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/MajorHoldersBreakdownData.cs b/src/Models/MajorHoldersBreakdownData.cs index ff8c2ed..ce24d37 100644 --- a/src/Models/MajorHoldersBreakdownData.cs +++ b/src/Models/MajorHoldersBreakdownData.cs @@ -60,7 +60,7 @@ public class MajorHoldersBreakdown public class MajorHoldersBreakdownQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/NetSharePurchaseActivityData.cs b/src/Models/NetSharePurchaseActivityData.cs index 11b3059..c5090c6 100644 --- a/src/Models/NetSharePurchaseActivityData.cs +++ b/src/Models/NetSharePurchaseActivityData.cs @@ -108,7 +108,7 @@ public class NetSharePurchaseActivity public class NetSharePurchaseActivityQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/PriceData.cs b/src/Models/PriceData.cs index 83f9e31..36eec43 100644 --- a/src/Models/PriceData.cs +++ b/src/Models/PriceData.cs @@ -171,7 +171,7 @@ public class Price public class PriceQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/QuoteTypeData.cs b/src/Models/QuoteTypeData.cs index 11a2663..5c4a927 100644 --- a/src/Models/QuoteTypeData.cs +++ b/src/Models/QuoteTypeData.cs @@ -3,7 +3,7 @@ public class QuoteTypeQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/RealTimeQuoteData.cs b/src/Models/RealTimeQuoteData.cs index 4c41d66..3cc0dd4 100644 --- a/src/Models/RealTimeQuoteData.cs +++ b/src/Models/RealTimeQuoteData.cs @@ -3,7 +3,7 @@ public class QuoteResponse { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/RecommendData.cs b/src/Models/RecommendData.cs index f9ae197..1f8003c 100644 --- a/src/Models/RecommendData.cs +++ b/src/Models/RecommendData.cs @@ -3,7 +3,7 @@ public class RecommendFinance { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); @@ -24,7 +24,7 @@ public class RecommendResult public string Symbol { get; set; } = string.Empty; [JsonProperty("recommendedSymbols")] - public List RecommendedSymbols { get; set; } = new(); + public List RecommendedSymbols { get; set; } = []; } public class RecommendData diff --git a/src/Models/RecommendationTrendData.cs b/src/Models/RecommendationTrendData.cs index 7ef7b9b..31af7a1 100644 --- a/src/Models/RecommendationTrendData.cs +++ b/src/Models/RecommendationTrendData.cs @@ -3,7 +3,7 @@ public class RecommendationTrendQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); @@ -12,7 +12,7 @@ public class RecommendationTrendQuoteSummary public class RecommendationTrend { [JsonProperty("trend")] - public List Trend { get; set; } = new(); + public List Trend { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } diff --git a/src/Models/SecFilingsData.cs b/src/Models/SecFilingsData.cs index e89b6e2..4efcd47 100644 --- a/src/Models/SecFilingsData.cs +++ b/src/Models/SecFilingsData.cs @@ -27,7 +27,7 @@ public class Filing public class SecFilingsQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); @@ -48,7 +48,7 @@ public class SecFilingsData public class SecFilings { [JsonProperty("filings")] - public List Filings { get; set; } = new(); + public List Filings { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } diff --git a/src/Models/SectorTrendData.cs b/src/Models/SectorTrendData.cs index 1519fd2..8d12080 100644 --- a/src/Models/SectorTrendData.cs +++ b/src/Models/SectorTrendData.cs @@ -3,7 +3,7 @@ public class SectorTrendQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); @@ -36,5 +36,5 @@ public class SectorTrend public PegRatio PegRatio { get; set; } = new(); [JsonProperty("estimates")] - public List Estimates { get; set; } = new(); + public List Estimates { get; set; } = []; } \ No newline at end of file diff --git a/src/Models/SparkChartData.cs b/src/Models/SparkChartData.cs index 0f3ef7f..1ed17c5 100644 --- a/src/Models/SparkChartData.cs +++ b/src/Models/SparkChartData.cs @@ -3,7 +3,7 @@ public class SparkInfo { [JsonProperty("timestamp")] - public List Timestamp { get; set; } = new(); + public List Timestamp { get; set; } = []; [JsonProperty("symbol")] public string Symbol { get; set; } = string.Empty; @@ -24,10 +24,5 @@ public class SparkInfo public object Start { get; set; } = new(); [JsonProperty("close")] - public List Close { get; set; } = new(); -} - -public class SparkChartData -{ - public SparkInfo Result { get; set; } = new(); + public List Close { get; set; } = []; } \ No newline at end of file diff --git a/src/Models/SummaryData.cs b/src/Models/SummaryData.cs index 3dadd58..3e78a12 100644 --- a/src/Models/SummaryData.cs +++ b/src/Models/SummaryData.cs @@ -251,7 +251,7 @@ public class PriceToSalesTrailing12Months public class QuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); diff --git a/src/Models/TrendingData.cs b/src/Models/TrendingData.cs index febc448..e9b4402 100644 --- a/src/Models/TrendingData.cs +++ b/src/Models/TrendingData.cs @@ -3,7 +3,7 @@ internal class TrendingFinance { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); @@ -21,7 +21,7 @@ internal class TrendingResult public int? Count { get; set; } [JsonProperty("quotes")] - public List Quotes { get; set; } = new(); + public List Quotes { get; set; } = []; [JsonProperty("jobTimestamp")] public long? JobTimestamp { get; set; } diff --git a/src/Models/UpgradeDowngradeHistoryData.cs b/src/Models/UpgradeDowngradeHistoryData.cs index 0bff61a..211ba9b 100644 --- a/src/Models/UpgradeDowngradeHistoryData.cs +++ b/src/Models/UpgradeDowngradeHistoryData.cs @@ -21,7 +21,7 @@ public class History public class UpgradeDowngradeHistoryQuoteSummary { [JsonProperty("result")] - public List Results { get; set; } = new(); + public List Results { get; set; } = []; [JsonProperty("error")] public object Error { get; set; } = new(); @@ -42,7 +42,7 @@ public class UpgradeDowngradeHistoryData public class UpgradeDowngradeHistory { [JsonProperty("history")] - public List History { get; set; } = new(); + public List History { get; set; } = []; [JsonProperty("maxAge")] public int? MaxAge { get; set; } diff --git a/src/OoplesFinance.YahooFinanceAPI.csproj b/src/OoplesFinance.YahooFinanceAPI.csproj index 4d2d0e4..59745d1 100644 --- a/src/OoplesFinance.YahooFinanceAPI.csproj +++ b/src/OoplesFinance.YahooFinanceAPI.csproj @@ -8,7 +8,7 @@ True True Ooples Finance Yahoo Finance API - 1.6.1 + 1.6.2 ooples Ooples Finance Ooples Finance LLC 2022-2023 @@ -146,7 +146,6 @@ - diff --git a/src/YahooClient.cs b/src/YahooClient.cs index c677ee8..7fc1025 100644 --- a/src/YahooClient.cs +++ b/src/YahooClient.cs @@ -535,9 +535,9 @@ public async Task> GetBalanceSheetHistoryQuar /// /// /// - public async Task GetChartInfoAsync(string symbol, TimeRange timeRange, TimeInterval timeInterval) + public async Task GetChartInfoAsync(string symbol, TimeRange timeRange, TimeInterval timeInterval) { - return new ChartHelper().ParseYahooJsonData(await DownloadChartDataAsync(symbol, timeRange, timeInterval)).First(); + return new ChartHelper().ParseYahooJsonData(await DownloadChartDataAsync(symbol, timeRange, timeInterval)).First(); } /// diff --git a/tests/UnitTests/YahooClientTests.cs b/tests/UnitTests/YahooClientTests.cs index a298a1d..f52234c 100644 --- a/tests/UnitTests/YahooClientTests.cs +++ b/tests/UnitTests/YahooClientTests.cs @@ -21,7 +21,7 @@ public YahooClientTests() { _sut = new YahooClient(); _startDate = DateTime.Now.AddMonths(-1); - _emptySymbols = Enumerable.Empty(); + _emptySymbols = []; _tooManySymbols = Enumerable.Repeat(GoodSymbol, 255); _goodSymbols = Enumerable.Repeat(GoodSymbol, 20); }