コード例 #1
0
        /// <summary>
        /// Creates message notifications for accounts that were affected by quantum
        /// </summary>
        /// <returns></returns>
        public Dictionary <int, Message> GetNotificationMessages()
        {
            var requestAccount = 0;

            if (Envelope.Message is RequestQuantum request)
            {
                requestAccount = request.RequestMessage.Account;
            }

            var result = new Dictionary <int, EffectsNotification>();

            foreach (var effect in Effects)
            {
                if (effect.Account == 0 ||
                    effect.Account == requestAccount)
                {
                    continue;
                }
                if (!result.TryGetValue(effect.Account, out var effectsNotification))
                {
                    effectsNotification = new EffectsNotification {
                        Effects = new List <Effect>()
                    };
                    result.Add(effect.Account, effectsNotification);
                }
                effectsNotification.Effects.Add(effect);
            }
            return(result.ToDictionary(k => k.Key, v => (Message)v.Value));
        }
コード例 #2
0
        public Dictionary <int, Message> GetNotificationMessages(T context)
        {
            var requestAccount = 0;

            if (context.Envelope.Message is RequestQuantum request)
            {
                requestAccount = request.RequestMessage.Account;
            }

            var result  = new Dictionary <int, EffectsNotification>();
            var effects = context.EffectProcessors.Effects;

            foreach (var effect in effects)
            {
                if (effect.AccountWrapper == default ||
                    effect.AccountWrapper.Id == requestAccount)
                {
                    continue;
                }
                if (!result.TryGetValue(effect.AccountWrapper.Id, out var effectsNotification))
                {
                    effectsNotification = new EffectsNotification {
                        Effects = new List <Effect>()
                    };
                    result.Add(effect.AccountWrapper.Id, effectsNotification);
                }
                effectsNotification.Effects.Add(effect);
            }
            return(result.ToDictionary(k => k.Key, v => (Message)v.Value));
        }