private static IEnumerable<Message> GenerateMessagesForConfig(Subscription subscription, Dictionary<string, NotificationConfig> configs)
{
if (subscription.RelatedEvents.Count == 0)
yield break;
foreach (var @event in subscription.RelatedEvents)
{
// we will process those content only for which config is available.
var config = configs[@event.ContentPath];
if (config == null)
continue;
var contextNode = Node.LoadNode(@event.ContentPath);
if (contextNode == null)
continue;
var allowed = config.IsNotificationAllowedForContent(contextNode);
if (!allowed)
continue;
var subject = config.GetSubject(contextNode);
var body = config.GetBody(contextNode);
yield return new Message
{
Address = subscription.UserEmail,
Subject = subject,
Body = body.ToString()
};
}
}
private static Message GenerateMessage(Subscription subscription, Dictionary<string, NotificationConfig> configs)