160 lines
5.3 KiB
C#
160 lines
5.3 KiB
C#
using System;
|
|
using System.Text;
|
|
using System.Diagnostics;
|
|
using System.Collections.Generic;
|
|
using MySql.Data.MySqlClient;
|
|
using MarketData.MarketDataModel;
|
|
using MarketData.Utils;
|
|
|
|
namespace MarketData.DataAccess
|
|
{
|
|
public class HolidayDA
|
|
{
|
|
private HolidayDA()
|
|
{
|
|
}
|
|
public static String GetHolidayDescription(DateTime date)
|
|
{
|
|
MySqlConnection sqlConnection=null;
|
|
MySqlDataReader sqlDataReader=null;
|
|
MySqlCommand sqlCommand=null;
|
|
String strQuery=null;
|
|
String description="";
|
|
|
|
try
|
|
{
|
|
StringBuilder sb=new StringBuilder();
|
|
sqlConnection=SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("market_data"));
|
|
sb.Append("select description from marketholidays where date='").Append(Utils.SqlUtils.SqlDate(date)).Append("'");
|
|
strQuery=sb.ToString();
|
|
sqlCommand=new MySqlCommand(strQuery,sqlConnection);
|
|
sqlCommand.CommandTimeout=SqlUtils.COMMAND_TIMEOUT;
|
|
sqlDataReader=sqlCommand.ExecuteReader();
|
|
if(sqlDataReader.Read())
|
|
{
|
|
if(!sqlDataReader.IsDBNull(0)) description=sqlDataReader.GetString(0);
|
|
}
|
|
return description;
|
|
}
|
|
catch(Exception exception)
|
|
{
|
|
MDTrace.WriteLine(LogLevel.DEBUG,exception);
|
|
return description;
|
|
}
|
|
finally
|
|
{
|
|
if(null!=sqlCommand) sqlCommand.Dispose();
|
|
if (null != sqlDataReader) {sqlDataReader.Close();sqlDataReader.Dispose();}
|
|
if(null!=sqlConnection) sqlConnection.Close();
|
|
}
|
|
}
|
|
public static DateTime GetMaxHolidayDate()
|
|
{
|
|
MySqlConnection sqlConnection=null;
|
|
MySqlDataReader sqlDataReader=null;
|
|
MySqlCommand sqlCommand=null;
|
|
String strQuery=null;
|
|
DateTime maxHolidayDate=Utility.Epoch;
|
|
|
|
try
|
|
{
|
|
StringBuilder sb=new StringBuilder();
|
|
sqlConnection=SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("market_data"));
|
|
sb.Append("select max(date) from marketholidays");
|
|
strQuery=sb.ToString();
|
|
sqlCommand=new MySqlCommand(strQuery,sqlConnection);
|
|
sqlCommand.CommandTimeout=SqlUtils.COMMAND_TIMEOUT;
|
|
sqlDataReader=sqlCommand.ExecuteReader();
|
|
if(sqlDataReader.Read())
|
|
{
|
|
if(!sqlDataReader.IsDBNull(0)) maxHolidayDate=sqlDataReader.GetDateTime(0);
|
|
}
|
|
return maxHolidayDate;
|
|
}
|
|
catch(Exception exception)
|
|
{
|
|
MDTrace.WriteLine(LogLevel.DEBUG,exception);
|
|
return maxHolidayDate;
|
|
}
|
|
finally
|
|
{
|
|
if(null!=sqlCommand) sqlCommand.Dispose();
|
|
if (null != sqlDataReader) {sqlDataReader.Close();sqlDataReader.Dispose();}
|
|
if(null!=sqlConnection) sqlConnection.Close();
|
|
}
|
|
}
|
|
|
|
public static bool IsMarketHoliday(DateTime date)
|
|
{
|
|
MySqlConnection sqlConnection=null;
|
|
MySqlDataReader sqlDataReader=null;
|
|
MySqlCommand sqlCommand=null;
|
|
String strQuery=null;
|
|
int recordCount=0;
|
|
|
|
try
|
|
{
|
|
StringBuilder sb=new StringBuilder();
|
|
sqlConnection=SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("market_data"));
|
|
sb.Append("select count(*) from marketholidays where date='").Append(Utility.DateTimeToStringYYYYHMMHDD(date)).Append("' ");
|
|
strQuery=sb.ToString();
|
|
sqlCommand=new MySqlCommand(strQuery,sqlConnection);
|
|
sqlCommand.CommandTimeout=SqlUtils.COMMAND_TIMEOUT;
|
|
sqlDataReader=sqlCommand.ExecuteReader();
|
|
if(sqlDataReader.Read())
|
|
{
|
|
if(!sqlDataReader.IsDBNull(0)) recordCount=sqlDataReader.GetInt32(0);
|
|
}
|
|
return 0==recordCount?false:true;
|
|
}
|
|
catch(Exception exception)
|
|
{
|
|
MDTrace.WriteLine(LogLevel.DEBUG,exception);
|
|
return false;
|
|
}
|
|
finally
|
|
{
|
|
if(null!=sqlCommand) sqlCommand.Dispose();
|
|
if (null != sqlDataReader) {sqlDataReader.Close();sqlDataReader.Dispose();}
|
|
if(null!=sqlConnection) sqlConnection.Close();
|
|
}
|
|
}
|
|
public static Dictionary<DateTime,DateTime> GetHolidays()
|
|
{
|
|
MySqlConnection sqlConnection=null;
|
|
MySqlDataReader sqlDataReader=null;
|
|
MySqlCommand sqlCommand=null;
|
|
String strQuery=null;
|
|
Dictionary<DateTime,DateTime> holidays=new Dictionary<DateTime,DateTime>();
|
|
|
|
try
|
|
{
|
|
StringBuilder sb=new StringBuilder();
|
|
sqlConnection=SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("market_data"));
|
|
sb.Append("select date from marketholidays order by date desc");
|
|
strQuery=sb.ToString();
|
|
sqlCommand=new MySqlCommand(strQuery,sqlConnection);
|
|
sqlCommand.CommandTimeout=SqlUtils.COMMAND_TIMEOUT;
|
|
sqlDataReader=sqlCommand.ExecuteReader();
|
|
while(sqlDataReader.Read())
|
|
{
|
|
DateTime holiday=sqlDataReader.GetDateTime(0);
|
|
if(!holidays.ContainsKey(holiday))holidays.Add(holiday,holiday);
|
|
}
|
|
return holidays;
|
|
}
|
|
catch(Exception exception)
|
|
{
|
|
MDTrace.WriteLine(LogLevel.DEBUG,exception);
|
|
return null;
|
|
}
|
|
finally
|
|
{
|
|
if(null!=sqlCommand) sqlCommand.Dispose();
|
|
if (null != sqlDataReader) {sqlDataReader.Close();sqlDataReader.Dispose();}
|
|
if(null!=sqlConnection) sqlConnection.Close();
|
|
}
|
|
}
|
|
}
|
|
}
|