From e668e8126dcd60b8c210e7c98cff433d07f23d6f Mon Sep 17 00:00:00 2001 From: Sean Date: Sun, 23 Nov 2025 16:47:26 -0500 Subject: [PATCH] Must include the indicator code when removing economic indicatos. --- .../DataAccess/EconomicIndicatorDA.cs | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/MarketData/MarketDataLib/DataAccess/EconomicIndicatorDA.cs b/MarketData/MarketDataLib/DataAccess/EconomicIndicatorDA.cs index 5ce2929..e528a06 100755 --- a/MarketData/MarketDataLib/DataAccess/EconomicIndicatorDA.cs +++ b/MarketData/MarketDataLib/DataAccess/EconomicIndicatorDA.cs @@ -207,11 +207,17 @@ namespace MarketData.DataAccess sqlCommand = sqlConnection.CreateCommand(); sqlCommand.Transaction = sqlTransaction; List distinctCountryCodes = (from EconomicIndicator economicIndicator in economicIndicators select economicIndicator.CountryCode).Distinct().ToList(); + List indicatorCodes = (from EconomicIndicator economicIndicator in economicIndicators select economicIndicator.IndicatorCode).Distinct().ToList(); + if(indicatorCodes.Count>1) + { + MDTrace.WriteLine(LogLevel.DEBUG, String.Format("InsertUpdateEconomicIndicators Expected a single indicator code but found multiple '{0}'",Utility.ListToString(indicatorCodes))); + return false; + } for (int index = 0; index < distinctCountryCodes.Count; index++) { String countryCode = distinctCountryCodes[index]; List years = (from EconomicIndicator economicIndicator in economicIndicators select economicIndicator.Year).Distinct().ToList(); - DeleteEconomicIndicator(countryCode, years, sqlCommand, sqlTransaction); + DeleteEconomicIndicator(indicatorCodes.First(),countryCode, years, sqlCommand, sqlTransaction); } InsertEconomicIndicators(economicIndicators, sqlCommand, sqlTransaction); sqlTransaction.Commit(); @@ -251,13 +257,14 @@ namespace MarketData.DataAccess /// Remove items /// /// - private static bool DeleteEconomicIndicator(String countryCode, List years, MySqlCommand sqlCommand, MySqlTransaction sqlTransaction) + private static bool DeleteEconomicIndicator(String indicatorCode,String countryCode, List years, MySqlCommand sqlCommand, MySqlTransaction sqlTransaction) { String strQuery = null; try { StringBuilder sb = new StringBuilder(); sb.Append("delete from EconomicIndicators ").Append(" where "); + sb.Append("indicator_code=").Append("'").Append(indicatorCode).Append("'").Append(" and "); sb.Append("country_code=").Append("'").Append(countryCode).Append("'").Append(" and "); sb.Append("year in ").Append(SqlUtils.CreateInClause(years)); strQuery = sb.ToString(); @@ -271,6 +278,31 @@ namespace MarketData.DataAccess return false; } } + + /// + /// Remove items + /// + /// + // private static bool DeleteEconomicIndicator(String countryCode, List years, MySqlCommand sqlCommand, MySqlTransaction sqlTransaction) + // { + // String strQuery = null; + // try + // { + // StringBuilder sb = new StringBuilder(); + // sb.Append("delete from EconomicIndicators ").Append(" where "); + // sb.Append("country_code=").Append("'").Append(countryCode).Append("'").Append(" and "); + // sb.Append("year in ").Append(SqlUtils.CreateInClause(years)); + // strQuery = sb.ToString(); + // sqlCommand.CommandText = strQuery; + // sqlCommand.ExecuteNonQuery(); + // return true; + // } + // catch (Exception exception) + // { + // MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Exception:{0}, query was {1}", exception.ToString(), strQuery)); + // return false; + // } + // } /// /// Insert items