/// <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)); }
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)); }