internal void OnStatistics(Portfolio portfolio, PortfolioStatisticsItem item) { foreach (var i in Items.Where(i => i != item)) { i.OnStatistics(portfolio, item); } }
internal void Unsubscribe(PortfolioStatisticsItem item, int type) { if (this.subscriptions[type] != null && this.subscriptions[type].Contains(item.Type)) { this.subscriptions[type].Remove(item.Type); } else { Console.WriteLine($"PortfolioStatistics::Unsubscribe Item {item.Type} is not subscribed for item {type}"); } }
internal void OnStatistics(PortfolioStatisticsItem item) { var subscription = this.subscriptions[item.Type]; if (subscription != null) { foreach (var type in subscription) { Items.GetByType(type).OnStatistics(item); } } }
public void Add(PortfolioStatisticsItem item) { if (item.statistics == null) { item.statistics = this; item.portfolio = this.portfolio; Items.Add(item); item.OnInit(); } else { Console.WriteLine($"PortfolioStatistics::Add Error. Item already belongs to other statistics {item}"); } }
internal void Subscribe(PortfolioStatisticsItem item, int type) { if (Items.GetByType(type) == null) { Add(this.portfolio.framework.StatisticsManager.Clone(type)); } var subscription = this.subscriptions[type] = this.subscriptions[type] ?? new List <int>(); if (subscription.Contains(item.Type)) { Console.WriteLine($"PortfolioStatistics::Subscribe Item {item.Type} is already subscribed for item {type}"); } else { subscription.Add(item.Type); } }
protected internal virtual void OnStatistics(Portfolio portfolio, PortfolioStatisticsItem statistics) { // noop }
public void Add(PortfolioStatisticsItem item) => Statistics.Add(item);