private void RaiseSecuritiesChanged(Security[] securities) { SecuritiesChanged.SafeInvoke(securities); var evt = SecurityChanged; if (evt == null) { return; } foreach (var security in securities) { evt(security); } }
private void AddSuffix(Security security) { lock (_trie) { AddSuffix(security.Id, security); AddSuffix(security.Code, security); AddSuffix(security.Name, security); AddSuffix(security.ShortName, security); } if (ExcludeFilter != null && ExcludeFilter(security)) { ExcludedCount++; } SecuritiesChanged.SafeInvoke(NotifyCollectionChangedAction.Add, security); }
private void AddSuffix(Security security) { lock (_trie) { AddSuffix(security.Id, security); AddSuffix(security.Code, security); AddSuffix(security.Name, security); AddSuffix(security.ShortName, security); AddSuffix(security.ExternalId.Bloomberg, security); AddSuffix(security.ExternalId.Cusip, security); AddSuffix(security.ExternalId.Isin, security); AddSuffix(security.ExternalId.Ric, security); AddSuffix(security.ExternalId.Sedol, security); } if (ExcludeFilter != null && ExcludeFilter(security)) { ExcludedCount++; } SecuritiesChanged.SafeInvoke(NotifyCollectionChangedAction.Add, security); }
/// <summary> /// Создать <see cref="FilterableSecurityProvider"/>. /// </summary> /// <param name="securities">Инструменты.</param> /// <param name="excludeFilter">Фильтр для исключения инструментов.</param> public FilterableSecurityProvider(ISecurityList securities, Func <Security, bool> excludeFilter = null) { if (securities == null) { throw new ArgumentNullException("securities"); } Securities = securities; ExcludeFilter = excludeFilter; Securities.Added += AddSuffix; Securities.Inserted += (i, s) => AddSuffix(s); Securities.Removed += s => { lock (_trie) _trie.Remove(s); if (ExcludeFilter != null && ExcludeFilter(s)) { ExcludedCount--; } SecuritiesChanged.SafeInvoke(NotifyCollectionChangedAction.Remove, s); }; Securities.Cleared += () => { lock (_trie) _trie.Clear(); ExcludedCount = 0; SecuritiesChanged.SafeInvoke(NotifyCollectionChangedAction.Reset, null); }; Securities.ForEach(AddSuffix); }
private void RealTraderOnSecuritiesChanged(IEnumerable <Security> securities) { SecuritiesChanged.SafeInvoke(this, new SecuritiesEventArgs(securities)); }
private void SecuritiesChangedHandler(IEnumerable <Security> securities) { AddGuiAction(() => SecuritiesChanged.SafeInvoke(securities)); }
/// <summary> /// To call the event <see cref="Connector.SecuritiesChanged"/>. /// </summary> /// <param name="securities">Instruments that should be passed to the event.</param> private void RaiseSecuritiesChanged(IEnumerable <Security> securities) { SecuritiesChanged.SafeInvoke(securities); }