private void ApplySubscriptionIds(ISubscriptionIdMessage message, ChildSubscription child) { var ids = message.GetSubscriptionIds(); var initialId = child.Parent.Origin.TransactionId; var newIds = child.Subscribers.CachedKeys.Concat(child.Parent.Alls.CachedKeys); if (ids.Length == 1 && ids[0] == initialId) { message.SetSubscriptionIds(newIds); } else { message.SetSubscriptionIds(ids.Where(id => id != initialId).Concat(newIds).ToArray()); } }
private void ApplySubscriptionIds(ISubscriptionIdMessage subscrMsg, ParentSubscription parent, long[] newIds) { var ids = subscrMsg.GetSubscriptionIds(); var initialId = parent.Origin.TransactionId; newIds = newIds.Concat(parent.Alls.CachedKeys); if (subscrMsg is ISecurityIdMessage secIdMsg && parent.NonAlls.TryGetValue(secIdMsg.SecurityId, out var set)) { newIds = newIds.Concat(set.Cache); } if (ids.Length == 1 && ids[0] == initialId) { subscrMsg.SetSubscriptionIds(newIds); } else { subscrMsg.SetSubscriptionIds(ids.Where(id => id != initialId).Concat(newIds).ToArray()); } }