Initial Commit
This commit is contained in:
368
MarketData/MarketDataLib/DataAccess/DividendPaymentDA.cs
Executable file
368
MarketData/MarketDataLib/DataAccess/DividendPaymentDA.cs
Executable file
@@ -0,0 +1,368 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using MySql.Data.MySqlClient;
|
||||
using MarketData.MarketDataModel;
|
||||
using MarketData.Utils;
|
||||
|
||||
namespace MarketData.DataAccess
|
||||
{
|
||||
public class DividendPaymentDA
|
||||
{
|
||||
private DividendPaymentDA()
|
||||
{
|
||||
}
|
||||
public static DividendPayments GetDividendPayments()
|
||||
{
|
||||
MySqlConnection sqlConnection = null;
|
||||
MySqlDataReader sqlDataReader = null;
|
||||
MySqlCommand sqlCommand =null;
|
||||
DividendPayments dividendPayments=new DividendPayments();
|
||||
String strQuery = null;
|
||||
|
||||
try
|
||||
{
|
||||
sqlConnection = SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("portfolio_data"));
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("select symbol,payment_date,account,amount from dividends order by payment_date desc, symbol asc;");
|
||||
strQuery = sb.ToString();
|
||||
sqlCommand = new MySqlCommand(strQuery, sqlConnection);
|
||||
sqlCommand.CommandTimeout = SqlUtils.COMMAND_TIMEOUT;
|
||||
sqlDataReader = sqlCommand.ExecuteReader();
|
||||
while (sqlDataReader.Read())
|
||||
{
|
||||
DividendPayment dividendPayment=new DividendPayment();
|
||||
dividendPayment.Symbol = sqlDataReader.GetString(0);
|
||||
dividendPayment.PaymentDate=sqlDataReader.GetDateTime(1);
|
||||
dividendPayment.Account=sqlDataReader.GetString(2);
|
||||
dividendPayment.Amount=sqlDataReader.GetDouble(3);
|
||||
dividendPayments.Add(dividendPayment);
|
||||
}
|
||||
sqlCommand.Dispose();
|
||||
sqlDataReader.Close();
|
||||
return dividendPayments;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,exception);
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if(null!=sqlCommand)sqlCommand.Dispose();
|
||||
if(null!=sqlDataReader)sqlDataReader.Dispose();
|
||||
if (null != sqlConnection) sqlConnection.Close();
|
||||
}
|
||||
}
|
||||
public static DividendPayments GetDividendPaymentsForSymbol(String symbol)
|
||||
{
|
||||
MySqlConnection sqlConnection = null;
|
||||
MySqlDataReader sqlDataReader = null;
|
||||
MySqlCommand sqlCommand =null;
|
||||
DividendPayments dividendPayments=new DividendPayments();
|
||||
String strQuery = null;
|
||||
|
||||
try
|
||||
{
|
||||
sqlConnection = SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("portfolio_data"));
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("select symbol,payment_date,account,amount from dividends ");
|
||||
sb.Append("where symbol=").Append("'").Append(symbol).Append("'");
|
||||
sb.Append(" order by payment_date desc, symbol asc;");
|
||||
strQuery = sb.ToString();
|
||||
sqlCommand = new MySqlCommand(strQuery, sqlConnection);
|
||||
sqlCommand.CommandTimeout = SqlUtils.COMMAND_TIMEOUT;
|
||||
sqlDataReader = sqlCommand.ExecuteReader();
|
||||
while (sqlDataReader.Read())
|
||||
{
|
||||
DividendPayment dividendPayment=new DividendPayment();
|
||||
dividendPayment.Symbol = sqlDataReader.GetString(0);
|
||||
dividendPayment.PaymentDate=sqlDataReader.GetDateTime(1);
|
||||
dividendPayment.Account=sqlDataReader.GetString(2);
|
||||
dividendPayment.Amount=sqlDataReader.GetDouble(3);
|
||||
dividendPayments.Add(dividendPayment);
|
||||
}
|
||||
sqlCommand.Dispose();
|
||||
sqlDataReader.Close();
|
||||
return dividendPayments;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,exception);
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if(null!=sqlCommand)sqlCommand.Dispose();
|
||||
if(null!=sqlDataReader)sqlDataReader.Dispose();
|
||||
if (null != sqlConnection) sqlConnection.Close();
|
||||
}
|
||||
}
|
||||
public static DividendPayments GetDividendPaymentsForAccount(String account)
|
||||
{
|
||||
List<String> accounts = new List<String>();
|
||||
accounts.Add(account);
|
||||
return GetDividendPaymentsForAccounts(accounts);
|
||||
}
|
||||
public static DividendPayments GetDividendPaymentsForAccounts(List<String> accounts)
|
||||
{
|
||||
MySqlConnection sqlConnection = null;
|
||||
MySqlDataReader sqlDataReader = null;
|
||||
MySqlCommand sqlCommand = null;
|
||||
DividendPayments dividendPayments = new DividendPayments();
|
||||
String strQuery = null;
|
||||
|
||||
try
|
||||
{
|
||||
sqlConnection = SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("portfolio_data"));
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("select symbol,payment_date,account,amount from dividends ");
|
||||
sb.Append("where account in ").Append(SqlUtils.CreateInClause(accounts));
|
||||
sb.Append(" order by payment_date desc, symbol asc;");
|
||||
strQuery = sb.ToString();
|
||||
sqlCommand = new MySqlCommand(strQuery, sqlConnection);
|
||||
sqlCommand.CommandTimeout = SqlUtils.COMMAND_TIMEOUT;
|
||||
sqlDataReader = sqlCommand.ExecuteReader();
|
||||
while (sqlDataReader.Read())
|
||||
{
|
||||
DividendPayment dividendPayment = new DividendPayment();
|
||||
dividendPayment.Symbol = sqlDataReader.GetString(0);
|
||||
dividendPayment.PaymentDate = sqlDataReader.GetDateTime(1);
|
||||
dividendPayment.Account = sqlDataReader.GetString(2);
|
||||
dividendPayment.Amount = sqlDataReader.GetDouble(3);
|
||||
dividendPayments.Add(dividendPayment);
|
||||
}
|
||||
sqlCommand.Dispose();
|
||||
sqlDataReader.Close();
|
||||
return dividendPayments;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, exception);
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (null != sqlCommand) sqlCommand.Dispose();
|
||||
if (null != sqlDataReader) sqlDataReader.Dispose();
|
||||
if (null != sqlConnection) sqlConnection.Close();
|
||||
}
|
||||
}
|
||||
public static DividendPayments GetDividendPaymentsForAccountsAndSymbols(List<String> accounts,List<String> symbols)
|
||||
{
|
||||
MySqlConnection sqlConnection = null;
|
||||
MySqlDataReader sqlDataReader = null;
|
||||
MySqlCommand sqlCommand = null;
|
||||
DividendPayments dividendPayments = new DividendPayments();
|
||||
String strQuery = null;
|
||||
|
||||
try
|
||||
{
|
||||
sqlConnection = SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("portfolio_data"));
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("select symbol,payment_date,account,amount from dividends ");
|
||||
if ((null == accounts || 0 == accounts.Count) && (null == symbols || 0 == symbols.Count)) return GetDividendPayments();
|
||||
if (!accounts.Contains(Constants.CONST_ALL)&&!accounts.Contains(""))
|
||||
{
|
||||
sb.Append("where account in ").Append(SqlUtils.CreateInClause(accounts)).Append(" ");
|
||||
if (!symbols.Contains(Constants.CONST_ALL)&&0!=symbols.Count&&!symbols.Contains("")) sb.Append("and symbol in ").Append(SqlUtils.CreateInClause(symbols)).Append(" ");
|
||||
}
|
||||
else if (!symbols.Contains(Constants.CONST_ALL)&&0!=symbols.Count&&!symbols.Contains("")) sb.Append("where symbol in ").Append(SqlUtils.CreateInClause(symbols)).Append(" ");
|
||||
sb.Append(" order by payment_date desc, account, symbol asc;");
|
||||
strQuery = sb.ToString();
|
||||
sqlCommand = new MySqlCommand(strQuery, sqlConnection);
|
||||
sqlCommand.CommandTimeout = SqlUtils.COMMAND_TIMEOUT;
|
||||
sqlDataReader = sqlCommand.ExecuteReader();
|
||||
while (sqlDataReader.Read())
|
||||
{
|
||||
DividendPayment dividendPayment = new DividendPayment();
|
||||
dividendPayment.Symbol = sqlDataReader.GetString(0);
|
||||
dividendPayment.PaymentDate = sqlDataReader.GetDateTime(1);
|
||||
dividendPayment.Account = sqlDataReader.GetString(2);
|
||||
dividendPayment.Amount = sqlDataReader.GetDouble(3);
|
||||
dividendPayments.Add(dividendPayment);
|
||||
}
|
||||
sqlCommand.Dispose();
|
||||
sqlDataReader.Close();
|
||||
return dividendPayments;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, exception);
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (null != sqlCommand) sqlCommand.Dispose();
|
||||
if (null != sqlDataReader) sqlDataReader.Dispose();
|
||||
if (null != sqlConnection) sqlConnection.Close();
|
||||
}
|
||||
}
|
||||
public static DividendPayments GetDividendPaymentsMaxDate(String symbol,DateTime maxDate)
|
||||
{
|
||||
MySqlConnection sqlConnection = null;
|
||||
MySqlDataReader sqlDataReader = null;
|
||||
MySqlCommand sqlCommand =null;
|
||||
DividendPayments dividendPayments=new DividendPayments();
|
||||
String strQuery = null;
|
||||
|
||||
try
|
||||
{
|
||||
sqlConnection = SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("portfolio_data"));
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("select symbol,payment_date,account,amount from dividends ");
|
||||
sb.Append("where symbol=").Append("'").Append(symbol).Append("'");
|
||||
sb.Append(" and payment_date<=").Append("'").Append(SqlUtils.ToSqlDateTime(maxDate)).Append("'");
|
||||
sb.Append(" order by payment_date desc, symbol asc;");
|
||||
strQuery = sb.ToString();
|
||||
sqlCommand = new MySqlCommand(strQuery, sqlConnection);
|
||||
sqlCommand.CommandTimeout = SqlUtils.COMMAND_TIMEOUT;
|
||||
sqlDataReader = sqlCommand.ExecuteReader();
|
||||
while (sqlDataReader.Read())
|
||||
{
|
||||
DividendPayment dividendPayment=new DividendPayment();
|
||||
dividendPayment.Symbol = sqlDataReader.GetString(0);
|
||||
dividendPayment.PaymentDate=sqlDataReader.GetDateTime(1);
|
||||
dividendPayment.Account=sqlDataReader.GetString(2);
|
||||
dividendPayment.Amount=sqlDataReader.GetDouble(3);
|
||||
dividendPayments.Add(dividendPayment);
|
||||
}
|
||||
sqlCommand.Dispose();
|
||||
sqlDataReader.Close();
|
||||
return dividendPayments;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,exception);
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if(null!=sqlCommand)sqlCommand.Dispose();
|
||||
if(null!=sqlDataReader)sqlDataReader.Dispose();
|
||||
if (null != sqlConnection) sqlConnection.Close();
|
||||
}
|
||||
}
|
||||
// ***********
|
||||
public static List<String> GetDividendPaymentAccounts()
|
||||
{
|
||||
MySqlConnection sqlConnection = null;
|
||||
MySqlDataReader sqlDataReader = null;
|
||||
MySqlCommand sqlCommand = null;
|
||||
List<String> accounts = new List<String>();
|
||||
String strQuery = null;
|
||||
|
||||
try
|
||||
{
|
||||
sqlConnection = SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("portfolio_data"));
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("select distinct(account) from dividends ");
|
||||
sb.Append(" order by account asc;");
|
||||
strQuery = sb.ToString();
|
||||
sqlCommand = new MySqlCommand(strQuery, sqlConnection);
|
||||
sqlCommand.CommandTimeout = SqlUtils.COMMAND_TIMEOUT;
|
||||
sqlDataReader = sqlCommand.ExecuteReader();
|
||||
while (sqlDataReader.Read())
|
||||
{
|
||||
accounts.Add(sqlDataReader.GetString(0));
|
||||
}
|
||||
sqlCommand.Dispose();
|
||||
sqlDataReader.Close();
|
||||
return accounts;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, exception);
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (null != sqlCommand) sqlCommand.Dispose();
|
||||
if (null != sqlDataReader) sqlDataReader.Dispose();
|
||||
if (null != sqlConnection) sqlConnection.Close();
|
||||
}
|
||||
}
|
||||
public static List<String> GetDividendPaymentSymbols()
|
||||
{
|
||||
MySqlConnection sqlConnection = null;
|
||||
MySqlDataReader sqlDataReader = null;
|
||||
MySqlCommand sqlCommand = null;
|
||||
List<String> symbols = new List<String>();
|
||||
String strQuery = null;
|
||||
|
||||
try
|
||||
{
|
||||
sqlConnection = SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("portfolio_data"));
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("select distinct(symbol) from dividends ");
|
||||
sb.Append(" order by symbol asc;");
|
||||
strQuery = sb.ToString();
|
||||
sqlCommand = new MySqlCommand(strQuery, sqlConnection);
|
||||
sqlCommand.CommandTimeout = SqlUtils.COMMAND_TIMEOUT;
|
||||
sqlDataReader = sqlCommand.ExecuteReader();
|
||||
while (sqlDataReader.Read())
|
||||
{
|
||||
symbols.Add(sqlDataReader.GetString(0));
|
||||
}
|
||||
sqlCommand.Dispose();
|
||||
sqlDataReader.Close();
|
||||
return symbols;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, exception);
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (null != sqlCommand) sqlCommand.Dispose();
|
||||
if (null != sqlDataReader) sqlDataReader.Dispose();
|
||||
if (null != sqlConnection) sqlConnection.Close();
|
||||
}
|
||||
}
|
||||
public static List<String> GetDividendPaymentSymbols(String account)
|
||||
{
|
||||
List<String> accounts = new List<String>();
|
||||
accounts.Add(account);
|
||||
return GetDividendPaymentSymbols(accounts);
|
||||
}
|
||||
public static List<String> GetDividendPaymentSymbols(List<String> accounts)
|
||||
{
|
||||
MySqlConnection sqlConnection = null;
|
||||
MySqlDataReader sqlDataReader = null;
|
||||
MySqlCommand sqlCommand = null;
|
||||
List<String> symbols = new List<String>();
|
||||
String strQuery = null;
|
||||
|
||||
try
|
||||
{
|
||||
sqlConnection = SqlUtils.CreateMySqlConnection(MainDataSource.Instance.LocateDataSource("portfolio_data"));
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append("select distinct(symbol) from dividends where account in ").Append(SqlUtils.CreateInClause(accounts));
|
||||
sb.Append(" order by symbol asc;");
|
||||
strQuery = sb.ToString();
|
||||
sqlCommand = new MySqlCommand(strQuery, sqlConnection);
|
||||
sqlCommand.CommandTimeout = SqlUtils.COMMAND_TIMEOUT;
|
||||
sqlDataReader = sqlCommand.ExecuteReader();
|
||||
while (sqlDataReader.Read())
|
||||
{
|
||||
symbols.Add(sqlDataReader.GetString(0));
|
||||
}
|
||||
sqlCommand.Dispose();
|
||||
sqlDataReader.Close();
|
||||
return symbols;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
MDTrace.WriteLine(LogLevel.DEBUG, exception);
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (null != sqlCommand) sqlCommand.Dispose();
|
||||
if (null != sqlDataReader) sqlDataReader.Dispose();
|
||||
if (null != sqlConnection) sqlConnection.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user