Add UnemploymentData
This commit is contained in:
@@ -7,33 +7,96 @@ namespace MarketData.DataAccess
|
||||
{
|
||||
public class EconomicIndicatorDA
|
||||
{
|
||||
private EconomicIndicatorDA()
|
||||
{
|
||||
}
|
||||
public static EconomicIndicators GetEconomicIndicators()
|
||||
private EconomicIndicatorDA()
|
||||
{
|
||||
MySqlConnection sqlConnection=null;
|
||||
MySqlCommand sqlCommand=null;
|
||||
MySqlDataReader sqlDataReader=null;
|
||||
EconomicIndicators economicIndicators=new EconomicIndicators();
|
||||
try
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Retrieves a distinct list of indicator_code
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static List<String> GetDistinctIndicators()
|
||||
{
|
||||
MySqlConnection sqlConnection = null;
|
||||
MySqlCommand sqlCommand = null;
|
||||
MySqlDataReader sqlDataReader = null;
|
||||
List<String> indicators = new List<String>();
|
||||
try
|
||||
|
||||
{
|
||||
sqlConnection = SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("market_data"));
|
||||
sqlCommand=sqlConnection.CreateCommand();
|
||||
StringBuilder sb=new StringBuilder();
|
||||
sb.Append("select country_code,country_name,indicator_code,indicator_name,indicator_value,year,source from EconomicIndicators");
|
||||
sqlCommand.CommandText=sb.ToString();
|
||||
sqlDataReader=sqlCommand.ExecuteReader();
|
||||
while(sqlDataReader.Read())
|
||||
sqlCommand = sqlConnection.CreateCommand();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("select distinct(indicator_code) from EconomicIndicators ");
|
||||
sb.Append("ORDER BY 1 asc");
|
||||
sqlCommand.CommandText = sb.ToString();
|
||||
sqlDataReader = sqlCommand.ExecuteReader();
|
||||
while (sqlDataReader.Read())
|
||||
{
|
||||
EconomicIndicator economicIndicator=new EconomicIndicator();
|
||||
if(!sqlDataReader.IsDBNull(0))economicIndicator.CountryCode=sqlDataReader.GetString(0);
|
||||
if(!sqlDataReader.IsDBNull(1))economicIndicator.CountryName=sqlDataReader.GetString(1);
|
||||
if(!sqlDataReader.IsDBNull(2))economicIndicator.IndicatorCode=sqlDataReader.GetString(2);
|
||||
if(!sqlDataReader.IsDBNull(3))economicIndicator.IndicatorName=sqlDataReader.GetString(3);
|
||||
if(!sqlDataReader.IsDBNull(4))economicIndicator.IndicatorValue=sqlDataReader.GetDouble(4);
|
||||
if(!sqlDataReader.IsDBNull(5))economicIndicator.Year=sqlDataReader.GetInt32(5);
|
||||
if(!sqlDataReader.IsDBNull(6))economicIndicator.Source=sqlDataReader.GetString(6);
|
||||
indicators.Add(sqlDataReader.GetString(0).ToUpper());
|
||||
}
|
||||
sqlDataReader.Close();
|
||||
sqlDataReader.Dispose();
|
||||
sqlCommand.Dispose();
|
||||
sqlConnection.Close();
|
||||
sqlConnection.Dispose();
|
||||
return indicators;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Exception:{0}", exception.ToString()));
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (null != sqlDataReader)
|
||||
{
|
||||
sqlDataReader.Close();
|
||||
sqlDataReader.Dispose();
|
||||
}
|
||||
if (null != sqlCommand)
|
||||
{
|
||||
sqlCommand.Dispose();
|
||||
}
|
||||
if (null != sqlConnection)
|
||||
{
|
||||
sqlConnection.Close();
|
||||
sqlConnection.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Retrieve all records
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static EconomicIndicators GetEconomicIndicators(String indicatorCode, String countryCode="USA")
|
||||
{
|
||||
MySqlConnection sqlConnection = null;
|
||||
MySqlCommand sqlCommand = null;
|
||||
MySqlDataReader sqlDataReader = null;
|
||||
EconomicIndicators economicIndicators = new EconomicIndicators();
|
||||
try
|
||||
{
|
||||
sqlConnection = SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("market_data"));
|
||||
sqlCommand = sqlConnection.CreateCommand();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("select country_code,country_name,indicator_code,indicator_name,indicator_value,year,source from EconomicIndicators").Append(" ");
|
||||
sb.Append("where indicator_code=").Append(SqlUtils.AddQuotes(indicatorCode)).Append(" ");
|
||||
sb.Append("AND country_code = ").Append(SqlUtils.AddQuotes(countryCode)).Append(" ");
|
||||
sb.Append("ORDER BY YEAR ASC");
|
||||
sqlCommand.CommandText = sb.ToString();
|
||||
sqlDataReader = sqlCommand.ExecuteReader();
|
||||
while (sqlDataReader.Read())
|
||||
{
|
||||
EconomicIndicator economicIndicator = new EconomicIndicator();
|
||||
if (!sqlDataReader.IsDBNull(0)) economicIndicator.CountryCode = sqlDataReader.GetString(0);
|
||||
if (!sqlDataReader.IsDBNull(1)) economicIndicator.CountryName = sqlDataReader.GetString(1);
|
||||
if (!sqlDataReader.IsDBNull(2)) economicIndicator.IndicatorCode = sqlDataReader.GetString(2);
|
||||
if (!sqlDataReader.IsDBNull(3)) economicIndicator.IndicatorName = sqlDataReader.GetString(3);
|
||||
if (!sqlDataReader.IsDBNull(4)) economicIndicator.IndicatorValue = sqlDataReader.GetDouble(4);
|
||||
if (!sqlDataReader.IsDBNull(5)) economicIndicator.Year = sqlDataReader.GetInt32(5);
|
||||
if (!sqlDataReader.IsDBNull(6)) economicIndicator.Source = sqlDataReader.GetString(6);
|
||||
economicIndicators.Add(economicIndicator);
|
||||
}
|
||||
sqlDataReader.Close();
|
||||
@@ -41,103 +104,179 @@ namespace MarketData.DataAccess
|
||||
sqlCommand.Dispose();
|
||||
sqlConnection.Close();
|
||||
sqlConnection.Dispose();
|
||||
return economicIndicators;
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Exception:{0}",exception.ToString()));
|
||||
return null;
|
||||
}
|
||||
return economicIndicators;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Exception:{0}", exception.ToString()));
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if(null!=sqlDataReader)
|
||||
if (null != sqlDataReader)
|
||||
{
|
||||
sqlDataReader.Close();
|
||||
sqlDataReader.Dispose();
|
||||
}
|
||||
if(null!=sqlCommand)
|
||||
if (null != sqlCommand)
|
||||
{
|
||||
sqlCommand.Dispose();
|
||||
}
|
||||
if(null!=sqlConnection)
|
||||
if (null != sqlConnection)
|
||||
{
|
||||
sqlConnection.Close();
|
||||
sqlConnection.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
public static bool InsertUpdateEconomicIndicators(EconomicIndicators economicIndicators)
|
||||
{
|
||||
MySqlConnection sqlConnection=null;
|
||||
MySqlCommand sqlCommand=null;
|
||||
MySqlTransaction sqlTransaction=null;
|
||||
try
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Retrieve all records
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static EconomicIndicators GetEconomicIndicators()
|
||||
{
|
||||
MySqlConnection sqlConnection = null;
|
||||
MySqlCommand sqlCommand = null;
|
||||
MySqlDataReader sqlDataReader = null;
|
||||
EconomicIndicators economicIndicators = new EconomicIndicators();
|
||||
try
|
||||
{
|
||||
sqlConnection = SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("market_data"));
|
||||
sqlCommand = sqlConnection.CreateCommand();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("select country_code,country_name,indicator_code,indicator_name,indicator_value,year,source from EconomicIndicators");
|
||||
sqlCommand.CommandText = sb.ToString();
|
||||
sqlDataReader = sqlCommand.ExecuteReader();
|
||||
while (sqlDataReader.Read())
|
||||
{
|
||||
EconomicIndicator economicIndicator = new EconomicIndicator();
|
||||
if (!sqlDataReader.IsDBNull(0)) economicIndicator.CountryCode = sqlDataReader.GetString(0);
|
||||
if (!sqlDataReader.IsDBNull(1)) economicIndicator.CountryName = sqlDataReader.GetString(1);
|
||||
if (!sqlDataReader.IsDBNull(2)) economicIndicator.IndicatorCode = sqlDataReader.GetString(2);
|
||||
if (!sqlDataReader.IsDBNull(3)) economicIndicator.IndicatorName = sqlDataReader.GetString(3);
|
||||
if (!sqlDataReader.IsDBNull(4)) economicIndicator.IndicatorValue = sqlDataReader.GetDouble(4);
|
||||
if (!sqlDataReader.IsDBNull(5)) economicIndicator.Year = sqlDataReader.GetInt32(5);
|
||||
if (!sqlDataReader.IsDBNull(6)) economicIndicator.Source = sqlDataReader.GetString(6);
|
||||
economicIndicators.Add(economicIndicator);
|
||||
}
|
||||
sqlDataReader.Close();
|
||||
sqlDataReader.Dispose();
|
||||
sqlCommand.Dispose();
|
||||
sqlConnection.Close();
|
||||
sqlConnection.Dispose();
|
||||
return economicIndicators;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Exception:{0}", exception.ToString()));
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (null != sqlDataReader)
|
||||
{
|
||||
sqlDataReader.Close();
|
||||
sqlDataReader.Dispose();
|
||||
}
|
||||
if (null != sqlCommand)
|
||||
{
|
||||
sqlCommand.Dispose();
|
||||
}
|
||||
if (null != sqlConnection)
|
||||
{
|
||||
sqlConnection.Close();
|
||||
sqlConnection.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Upsert items
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static bool InsertUpdateEconomicIndicators(EconomicIndicators economicIndicators)
|
||||
{
|
||||
MySqlConnection sqlConnection = null;
|
||||
MySqlCommand sqlCommand = null;
|
||||
MySqlTransaction sqlTransaction = null;
|
||||
try
|
||||
{
|
||||
sqlConnection = SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("market_data"));
|
||||
sqlTransaction = sqlConnection.BeginTransaction(System.Data.IsolationLevel.ReadUncommitted);
|
||||
sqlCommand=sqlConnection.CreateCommand();
|
||||
sqlCommand.Transaction=sqlTransaction;
|
||||
List<String> distinctCountryCodes=(from EconomicIndicator economicIndicator in economicIndicators select economicIndicator.CountryCode).Distinct().ToList();
|
||||
for(int index=0;index<distinctCountryCodes.Count;index++)
|
||||
sqlCommand = sqlConnection.CreateCommand();
|
||||
sqlCommand.Transaction = sqlTransaction;
|
||||
List<String> distinctCountryCodes = (from EconomicIndicator economicIndicator in economicIndicators select economicIndicator.CountryCode).Distinct().ToList();
|
||||
for (int index = 0; index < distinctCountryCodes.Count; index++)
|
||||
{
|
||||
String countryCode=distinctCountryCodes[index];
|
||||
List<int> years=(from EconomicIndicator economicIndicator in economicIndicators select economicIndicator.Year).Distinct().ToList();
|
||||
DeleteEconomicIndicator(countryCode,years,sqlCommand,sqlTransaction);
|
||||
String countryCode = distinctCountryCodes[index];
|
||||
List<int> years = (from EconomicIndicator economicIndicator in economicIndicators select economicIndicator.Year).Distinct().ToList();
|
||||
DeleteEconomicIndicator(countryCode, years, sqlCommand, sqlTransaction);
|
||||
}
|
||||
InsertEconomicIndicators(economicIndicators,sqlCommand,sqlTransaction);
|
||||
InsertEconomicIndicators(economicIndicators, sqlCommand, sqlTransaction);
|
||||
sqlTransaction.Commit();
|
||||
sqlTransaction.Dispose();
|
||||
sqlCommand.Dispose();
|
||||
sqlConnection.Close();
|
||||
sqlConnection.Dispose();
|
||||
sqlConnection=null;
|
||||
sqlCommand=null;
|
||||
sqlTransaction=null;
|
||||
return true;
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Exception:{0}",exception.ToString()));
|
||||
return false;
|
||||
}
|
||||
sqlConnection = null;
|
||||
sqlCommand = null;
|
||||
sqlTransaction = null;
|
||||
return true;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Exception:{0}", exception.ToString()));
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if(null!=sqlConnection)
|
||||
if (null != sqlConnection)
|
||||
{
|
||||
sqlConnection.Close();
|
||||
sqlConnection.Dispose();
|
||||
}
|
||||
if(null!=sqlCommand)
|
||||
if (null != sqlCommand)
|
||||
{
|
||||
sqlCommand.Dispose();
|
||||
}
|
||||
if(null!=sqlTransaction)
|
||||
if (null != sqlTransaction)
|
||||
{
|
||||
sqlTransaction.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
public static bool DeleteEconomicIndicator(String countryCode,List<int> years,MySqlCommand sqlCommand,MySqlTransaction sqlTransaction)
|
||||
{
|
||||
String strQuery=null;
|
||||
try
|
||||
{
|
||||
StringBuilder sb=new StringBuilder();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove items
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private static bool DeleteEconomicIndicator(String countryCode, List<int> 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;
|
||||
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;
|
||||
}
|
||||
}
|
||||
public static bool InsertEconomicIndicators(EconomicIndicators economicIndicators,MySqlCommand sqlCommand,MySqlTransaction sqlTransaction)
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, String.Format("Exception:{0}, query was {1}", exception.ToString(), strQuery));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Insert items
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private static bool InsertEconomicIndicators(EconomicIndicators economicIndicators,MySqlCommand sqlCommand,MySqlTransaction sqlTransaction)
|
||||
{
|
||||
String strQuery=null;
|
||||
try
|
||||
|
||||
Reference in New Issue
Block a user