Exemplo n.º 1
0
        public void SendArticleToSalesManago(SalesManagoSendArticleViewModel model, string salesManagoMail)
        {
            var email = new Email <SalesManagoSendArticleViewModel>
            {
                Model         = model,
                Template      = "/Views/Mails/SalesManago.cshtml",
                Subject       = string.Format("Zlecenie wysłania powiadomienia: {0}", model.ArticleTitle),
                FromConfigKey = "smtp_email_from_register",
                To            = salesManagoMail,
            };

            SendEmail(email);
        }
        public void Handle(UmbracoContentSavedEvent @event)
        {
            var items = @event.Args.SavedEntities
                        .Where(i => i.HasProperty(ShouldNotifyPropName) &&
                               i.HasProperty(ShouldNotifyPropName) &&
                               i.HasProperty(CommentPropName) &&
                               i.HasProperty(LeadPropName) &&
                               i.HasProperty(TitlePropName))                  //Wybieramy artykuły z odpowiednimi polami do wysyłki
                        .Where(i => i.GetValue <bool>(ShouldNotifyPropName)); // i które są oznaczone do wysyłki


            foreach (var item in items)
            {
                //send mail
                var model = new SalesManagoSendArticleViewModel
                {
                    Comment      = item.GetValue <string>(CommentPropName),
                    ArticleLead  = item.GetValue <string>(LeadPropName),
                    ArticleTitle = item.GetValue <string>(TitlePropName),
                    ArticleLink  = UmbracoContext.Current.UrlProvider.GetUrl(item.Id),
                    RedactorMail =
                        UmbracoContext.Current.Application.Services.UserService.GetUserById(item.WriterId).Email,
                    Regions    = GetRegions(item),
                    ImageUrl   = GetImage(item),
                    UpdateDate = item.UpdateDate
                };


                var emails = item.GetValue <string>(EmailsPropName)
                             .Split(',')
                             .Select(int.Parse)
                             .Select(i => new Node(i).Name);

                foreach (var email in emails)
                {
                    _emailService.SendArticleToSalesManago(model, email);
                }


                //clear form data
                item.SetValue(ShouldNotifyPropName, false);
                item.SetValue(CommentPropName, "");
                item.SetValue(EmailsPropName, "");
            }
        }