private DividendTransaction CreateDividendTransaction(ActivityDividendModel activityDividendRow, ActivityDividendModel[] activities) { decimal tax = SearchForTax(activityDividendRow, activities); var currency = (Currency)Enum.Parse(typeof(Currency), activityDividendRow.Currency); return(new DividendTransaction(Broker.Revolut, activityDividendRow.SettleDate, activityDividendRow.Description, activityDividendRow.Amount, tax, currency)); }
private decimal SearchForTax(ActivityDividendModel dividendTransactionRow, ActivityDividendModel[] activities) { var transactionRow = activities.FirstOrDefault(i => i.ActivityType == "DIVNRA" && i.TradeDate == dividendTransactionRow.TradeDate && i.SettleDate == dividendTransactionRow.SettleDate && i.Description.Substring(0, i.Description.IndexOf(" - DIV")) == dividendTransactionRow.Description.Substring(0, dividendTransactionRow.Description.IndexOf(" - DIV")) ); return(transactionRow?.Amount ?? 0); }
private DividendTransaction CreateDividendTransaction(ActivityTaxesModel[] activityTaxesModels, ActivityDividendModel activityDividendRow, int year) { var date = CreateDateTime(activityDividendRow.Date, year); var tax = SearchForTaxString(activityTaxesModels, date); return(new DividendTransaction(Broker.Fidelity, date, activityDividendRow.Name, activityDividendRow.Income, tax, Currency.USD)); }