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());
            }
        }
Пример #2
0
        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());
            }
        }