Example #1
0
        private async Task SendIndividualEmails(MassEmailModel model, CustomizationSettings customization, EmailNotificationSettings email, List <Task> messagesSent)
        {
            var resolver = new NotificationMessageResolver();
            var curlys   = new NotificationMessageCurlys();

            foreach (var user in model.Users)
            {
                var fullUser = await _userManager.Users.FirstOrDefaultAsync(x => x.Id == user.Id);

                if (!fullUser.Email.HasValue())
                {
                    _log.LogInformation("User {0} has no email, cannot send mass email to this user", fullUser.UserName);
                    continue;
                }
                curlys.Setup(fullUser, customization);
                var template = new NotificationTemplates()
                {
                    Message = model.Body, Subject = model.Subject
                };
                var content = resolver.ParseMessage(template, curlys);
                var msg     = new NotificationMessage
                {
                    Message = content.Message,
                    To      = fullUser.Email,
                    Subject = content.Subject
                };
                messagesSent.Add(DelayEmail(msg, email));
                _log.LogInformation("Sent mass email to user {0} @ {1}", fullUser.UserName, fullUser.Email);
            }
        }
Example #2
0
        private NotificationMessageContent Parse(NotificationOptions model, NotificationTemplates template, NotificationAgent agent)
        {
            var resolver   = new NotificationMessageResolver();
            var curlys     = new NotificationMessageCurlys();
            var preference = GetUserPreference(model.UserId, agent);

            if (model.RequestType == RequestType.Movie)
            {
                _log.LogDebug("Notification options: {@model}, Req: {@MovieRequest}, Settings: {@Customization}", model, MovieRequest, Customization);

                curlys.Setup(model, MovieRequest, Customization, preference);
            }
            else if (model.RequestType == RequestType.TvShow)
            {
                _log.LogDebug("Notification options: {@model}, Req: {@TvRequest}, Settings: {@Customization}", model, TvRequest, Customization);
                curlys.Setup(model, TvRequest, Customization, preference);
            }
            else if (model.RequestType == RequestType.Album)
            {
                _log.LogDebug("Notification options: {@model}, Req: {@AlbumRequest}, Settings: {@Customization}", model, AlbumRequest, Customization);
                curlys.Setup(model, AlbumRequest, Customization, preference);
            }
            var parsed = resolver.ParseMessage(template, curlys);

            return(parsed);
        }
Example #3
0
        private NotificationMessageContent ParseTemplate(NotificationTemplates template, CustomizationSettings settings, OmbiUser username)
        {
            var resolver = new NotificationMessageResolver();
            var curlys   = new NotificationMessageCurlys();

            curlys.SetupNewsletter(settings, username);

            return(resolver.ParseMessage(template, curlys));
        }
Example #4
0
        private NotificationMessageContent Parse(OmbiUser u, NotificationTemplates template, CustomizationSettings cs)
        {
            var resolver = new NotificationMessageResolver();
            var curlys   = new NotificationMessageCurlys();

            curlys.Setup(u, cs);
            var parsed = resolver.ParseMessage(template, curlys);

            return(parsed);
        }
        public string ResolveSubject(string subject, NotificationMessageCurlys param)
        {
            var n = new NotificationMessageResolver();
            var s = new NotificationSettings
            {
                Message = new List <Notification.NotificationMessage> {
                    new Notification.NotificationMessage {
                        NotificationType = NotificationType.NewRequest, Subject = subject
                    }
                }
            };

            var result = n.ParseMessage(s, NotificationType.NewRequest, param);

            return(result.Subject);
        }
        public string ResolveBody(string body, NotificationMessageCurlys param)
        {
            var n = new NotificationMessageResolver();
            var s = new NotificationSettings
            {
                Message = new List <Notification.NotificationMessage> {
                    new Notification.NotificationMessage {
                        NotificationType = NotificationType.NewRequest, Body = body
                    }
                }
            };

            var result = n.ParseMessage(s, NotificationType.NewRequest, param);

            return(result.Body);
        }
Example #7
0
        private async Task SendBccMails(MassEmailModel model, CustomizationSettings customization, EmailNotificationSettings email, List <Task> messagesSent)
        {
            var resolver = new NotificationMessageResolver();
            var curlys   = new NotificationMessageCurlys();

            var validUsers = new List <OmbiUser>();

            foreach (var user in model.Users)
            {
                var fullUser = await _userManager.Users.FirstOrDefaultAsync(x => x.Id == user.Id);

                if (!fullUser.Email.HasValue())
                {
                    _log.LogInformation("User {0} has no email, cannot send mass email to this user", fullUser.UserName);
                    continue;
                }

                validUsers.Add(fullUser);
            }

            if (!validUsers.Any())
            {
                return;
            }

            var firstUser = validUsers.FirstOrDefault();

            var bccAddress = string.Join(',', validUsers.Select(x => x.Email));

            curlys.Setup(firstUser, customization);
            var template = new NotificationTemplates()
            {
                Message = model.Body, Subject = model.Subject
            };
            var content = resolver.ParseMessage(template, curlys);
            var msg     = new NotificationMessage
            {
                Message = content.Message,
                Subject = content.Subject,
                Other   = new Dictionary <string, string> {
                    { "bcc", bccAddress }
                }
            };

            messagesSent.Add(_email.SendAdHoc(msg, email));
        }
Example #8
0
        private NotificationMessageContent Parse(NotificationOptions model, NotificationTemplates template)
        {
            var resolver = new NotificationMessageResolver();
            var curlys   = new NotificationMessageCurlys();

            if (model.RequestType == RequestType.Movie)
            {
                _log.LogDebug("Notification options: {@model}, Req: {@MovieRequest}, Settings: {@Customization}", model, MovieRequest, Customization);

                curlys.Setup(model, MovieRequest, Customization);
            }
            else
            {
                _log.LogDebug("Notification options: {@model}, Req: {@TvRequest}, Settings: {@Customization}", model, TvRequest, Customization);
                curlys.Setup(model, TvRequest, Customization);
            }
            var parsed = resolver.ParseMessage(template, curlys);

            return(parsed);
        }
Example #9
0
        public async Task <bool> SendMassEmail(MassEmailModel model)
        {
            var customization = await _customizationService.GetSettingsAsync();

            var email = await _emailService.GetSettingsAsync();

            var messagesSent = new List <Task>();

            foreach (var user in model.Users)
            {
                var fullUser = await _userManager.Users.FirstOrDefaultAsync(x => x.Id == user.Id);

                if (!fullUser.Email.HasValue())
                {
                    _log.LogInformation("User {0} has no email, cannot send mass email to this user", fullUser.UserName);
                    continue;
                }
                var resolver = new NotificationMessageResolver();
                var curlys   = new NotificationMessageCurlys();
                curlys.Setup(fullUser, customization);
                var template = new NotificationTemplates()
                {
                    Message = model.Body, Subject = model.Subject
                };
                var content = resolver.ParseMessage(template, curlys);
                var msg     = new NotificationMessage
                {
                    Message = content.Message,
                    To      = fullUser.Email,
                    Subject = content.Subject
                };
                messagesSent.Add(_email.SendAdHoc(msg, email));
                _log.LogInformation("Sent mass email to user {0} @ {1}", fullUser.UserName, fullUser.Email);
            }

            await Task.WhenAll(messagesSent);

            return(true);
        }
Example #10
0
 public void Setup()
 {
     _resolver = new NotificationMessageResolver();
 }