public Dictionary<DateTime, CashFlow> GetCashFlowByDate(Period period) { var cashflow = new Dictionary<DateTime, CashFlow>(); var flow = new CashFlow(); foreach (var t in Document.GetTransactions(period, this)) { if (!cashflow.ContainsKey(t.Date)) cashflow.Add(t.Date, flow = new CashFlow()); flow = cashflow[t.Date]; if (t.Source == this) flow.Outflow += t.Amount; else flow.Inflow += t.Amount; cashflow[t.Date] = flow; } return cashflow; }
public Dictionary<ITransactable, CashFlow> GetCashFlowByContribution(Period period) { var cashflow = new Dictionary<ITransactable, CashFlow>(); var flow = new CashFlow(); ITransactable obj = null; foreach (var t in Document.GetTransactions(period, this)) { obj = (t.Source == this) ? t.Target : t.Source; if (!cashflow.ContainsKey(obj)) cashflow.Add(obj, flow = new CashFlow()); flow = cashflow[obj]; if (t.Source == this) flow.Outflow += t.Amount; else flow.Inflow += t.Amount; cashflow[obj] = flow; } return cashflow; }