Refactor InsiderTransactionParser, InsiderTransactionDA and UpdateManager

This commit is contained in:
2024-02-27 20:22:10 -05:00
parent 3ed52ad5fc
commit ad872e0058
18 changed files with 90 additions and 60 deletions

View File

@@ -106,7 +106,7 @@ namespace MarketData.DataAccess
if (null != sqlConnection) sqlConnection.Close();
}
}
// Add NumberOrValueAcquiredDisposed to key
public static bool InsertInsiderTransactions(InsiderTransactions insiderTransactions)
{
MySqlConnection sqlConnection = null;
@@ -125,13 +125,23 @@ namespace MarketData.DataAccess
String insiderTransactionKey = insiderTransaction.Form + insiderTransaction.SECAccessionNumber + insiderTransaction.FormRowNumber;
if (insiderTransactionsUniqueKey.ContainsKey(insiderTransactionKey))
{
MDTrace.WriteLine(LogLevel.DEBUG,"*********************************************************************************************************");
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Collection already contains a value for Form:{0} SECAccessionNumber:{1} FormRowNumber:{2}",
insiderTransaction.Form,insiderTransaction.SECAccessionNumber,insiderTransaction.FormRowNumber));
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("InsiderName:{0} OwnershipType:{1} Securities:{2} NatureOfTransaction:{3} NumberOrValueAcquiredDisposed:{4} Price:{5} FilingDate:{6} TransactionDate:{7}",
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Item attempting to add: InsiderName:{0} OwnershipType:{1} Securities:{2} NatureOfTransaction:{3} NumberOrValueAcquiredDisposed:{4} Price:{5} FilingDate:{6} TransactionDate:{7}",
insiderTransaction.InsiderName,insiderTransaction.OwnershipType,insiderTransaction.Securities,insiderTransaction.NatureOfTransaction,insiderTransaction.NumberOrValueAcquiredDisposed,insiderTransaction.Price,
Utility.DateTimeToStringMMHDDHYYYY(insiderTransaction.FilingDate),Utility.DateTimeToStringMMSDDSYYYY(insiderTransaction.TransactionDate)));
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Item already in collection: InsiderName:{0} OwnershipType:{1} Securities:{2} NatureOfTransaction:{3} NumberOrValueAcquiredDisposed:{4} Price:{5} FilingDate:{6} TransactionDate:{7}",
insiderTransaction.InsiderName,insiderTransaction.OwnershipType,insiderTransaction.Securities,insiderTransaction.NatureOfTransaction,insiderTransaction.NumberOrValueAcquiredDisposed,insiderTransaction.Price,
Utility.DateTimeToStringMMHDDHYYYY(insiderTransaction.FilingDate),Utility.DateTimeToStringMMSDDSYYYY(insiderTransaction.TransactionDate)));
MDTrace.WriteLine(LogLevel.DEBUG,"*********************************************************************************************************");
continue;
}
}
StringBuilder sb = new StringBuilder();
sb.Append("insert into InsiderTransaction (symbol,filing_date,transaction_date,insider_name,ownership_type,securities,nature_of_transaction,number_or_value_acquired_disposed,price,form,sec_accession_number,form_row_number,modified) ");
sb.Append("values(");

View File

@@ -103,6 +103,7 @@ namespace MarketData.Helper
}
}
int sequenceNumber=0;
foreach(Dictionary<String,String> dictionary in dictionaryList)
{
String strItem=null;
@@ -120,7 +121,8 @@ namespace MarketData.Helper
insiderTransaction.TransactionDate=Utility.ParseDate(strItem);
insiderTransaction.NatureOfTransaction=transactionCodes.ContainsKey(GetFirstSection(Sections.GetSections(dictionary["Transaction Code"])))?transactionCodes[GetFirstSection(Sections.GetSections(dictionary["Transaction Code"]))]:Constants.CONST_QUESTION;
insiderTransaction.NumberOrValueAcquiredDisposed=FeedParser.ParseValue(GetFirstSection(Sections.GetSections(dictionary["Securities Acquired or Disposed"])));
insiderTransaction.FormRowNumber=((decimal)insiderTransaction.NumberOrValueAcquiredDisposed).ToString();
// insiderTransaction.FormRowNumber=((decimal)insiderTransaction.NumberOrValueAcquiredDisposed).ToString();
insiderTransaction.FormRowNumber=(++sequenceNumber).ToString();
insiderTransaction.Price=FeedParser.ParseValue(CombineSections(Sections.GetSections(dictionary["Price"])));
String acquiredOrDisposed=GetAcquiredOrDisposed(dictionary);
if(null==acquiredOrDisposed)

View File

@@ -60,10 +60,10 @@ namespace MarketData.Utils
DateGenerator dateGenerator=new DateGenerator();
DateTime creationTime=File.GetCreationTime(strPathFileName);
int daysElapsed=Math.Abs(dateGenerator.DaysBetweenActual(creationTime,DateTime.Now));
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("{0} is {1} days(s) old.",strPathFileName,daysElapsed));
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Ok. {0} is {1} days(s) old. MaxAge:{2} days",strPathFileName,daysElapsed,maxAgeDays));
if(daysElapsed>maxAgeDays)
{
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("{0} is expired. {1} days old.",strPathFileName,daysElapsed));
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("{0} is expired. {1} days old. MaxAge:{2} days",strPathFileName,daysElapsed,maxAgeDays));
return true;
}
return false;