private void ContentService_Published(IContentService sender, Umbraco.Core.Events.ContentPublishedEventArgs e)
        {
            using (var contextReference = _umbracoContext.EnsureUmbracoContext())
            {
                _context = contextReference.UmbracoContext;
            }

            foreach (var item in e.PublishedEntities)
            {
                if (IsAllowedDocType(item.ContentType.Alias))
                {
                    var title = item.GetValue(TitleProperty) != null?item.GetValue <string>(TitleProperty) : item.Name;

                    var content = item.GetValue(ContentProperty) != null?item.GetValue <string>(ContentProperty) : item.Name;

                    var url = "";

                    if (_context != null)
                    {
                        var publishedEntity = _context.Content.GetById(item.Id);
                        url = publishedEntity.Url(mode: UrlMode.Absolute);
                    }


                    var segments = new string[] { "All" };

                    if (SendPushNotificationOnPublish)
                    {
                        if (PushNotification(title, content, segments, url))
                        {
                            _logger.Info <PushNotificationComponent>(
                                $"Notification sent successfully. Page Details : '{title}' ('{item.Id}')");
                        }
                        else
                        {
                            _logger.Warn <PushNotificationComponent>(
                                $"Notification send failed. Page Details : '{title}' ('{item.Id}')");
                        }
                    }
                    else
                    {
                        if (item.GetValue <bool>("sendPushNotification"))
                        {
                            if (PushNotification(title, content, segments, url))
                            {
                                item.SetValue("sendPushNotification", false);
                                _contentService.SaveAndPublish(item, raiseEvents: false);
                                _logger.Info <PushNotificationComponent>(
                                    $"Notification sent successfully. Page Details : '{title}' ('{item.Id}')");
                            }
                            else
                            {
                                _logger.Warn <PushNotificationComponent>(
                                    $"Notification send failed. Page Details : '{title}' ('{item.Id}')");
                            }
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        private void ContentService_Published(Umbraco.Core.Services.IContentService sender, Umbraco.Core.Events.ContentPublishedEventArgs e)
        {
            try
            {
                using (var context = _umbracoContextFactory.EnsureUmbracoContext())
                {
                    var defaultUrl = new Uri("/", UriKind.Relative);
                    var entries    = e.PublishedEntities.Select(pe =>
                    {
                        var pc      = context.UmbracoContext.Content.GetById(pe.Id);
                        var baseUrl = defaultUrl;

                        if (pc != null)
                        {
                            var absUrl = pc.Url(mode: UrlMode.Absolute).ToString();
                            var relUrl = pc.Url(mode: UrlMode.Relative).ToString();
                            baseUrl    = new Uri(absUrl.Substring(0, absUrl.Length - relUrl.Length));
                        }

                        return(_searchIndexEntryHelper.GetIndexEntry(baseUrl, pe));
                    }).Where(ie => ie != null).ToList();

                    _searchApplianceService.UpdateSearchAppliance(entries);
                }
            }
            catch (Exception ex)
            {
                _logger.Error <SearchComponent>(ex, "Could not update index entries");
            }
        }
Esempio n. 3
0
 private void ContentService_Published(Umbraco.Core.Services.IContentService sender, Umbraco.Core.Events.ContentPublishedEventArgs e)
 {
     foreach (var publishedItem in e.PublishedEntities)
     {
         if (publishedItem.ContentType.Alias == "website")
         {
             ExamineComponent.AttemptAddIndexForContent(publishedItem);
         }
     }
 }
 private void ContentService_Published(Umbraco.Core.Services.IContentService sender, Umbraco.Core.Events.ContentPublishedEventArgs e)
 {
     //Code that will be executed whenever content is published.
     foreach (var PublishedItem in e.PublishedEntities)
     {
         _logger.Info <LogWhenPublishedComponent>(PublishedItem.Name + " was published.");
     }
 }
Esempio n. 5
0
        public void ContentService_Published(Umbraco.Core.Services.IContentService sender, Umbraco.Core.Events.ContentPublishedEventArgs e)
        {
            foreach (var item in e.PublishedEntities)
            {
                var properties = new PropertiesDictionary(item);
                var publisher  = Current.Services.UserService.GetUserById(item.PublisherId.GetValueOrDefault());
                if (publisher != null)
                {
                    properties.Add("publisher", publisher.Name);
                }

                AsyncUtil.RunSync(() => _messagingService.SendMessageAsync("contentService", "published", properties, publisher));
            }
        }
        private void ContentService_Published(Umbraco.Core.Services.IContentService sender, Umbraco.Core.Events.ContentPublishedEventArgs e)
        {
            var autoPublishSites = _sitesRepository.GetAutoPublishSites();

            var sitesToDeploy = new List <ExtendedGeneratedSite>();

            foreach (var publishedItem in e.PublishedEntities)
            {
                foreach (var site in autoPublishSites)
                {
                    if (sitesToDeploy.Contains(site))
                    {
                        continue;
                    }

                    if (publishedItem.Path.Contains($",{site.RootNode},") || publishedItem.Path.EndsWith($",{site.RootNode}"))
                    {
                        sitesToDeploy.Add(site);
                    }
                }
            }

            //var context = _umbracoContext.EnsureUmbracoContext();
            var process       = new RebuildProcess(_umbracoContextFactory, _exportTypeSettings);
            var deployProcess = new DeployProcess(_storer, _deployerFactory, _sitesRepository);

            foreach (var site in sitesToDeploy)
            {
                //process.RebuildSite(site.Id);
                Task.Run(async() => {
                    await process.RebuildSite(site.Id);
                    await deployProcess.DeployStaticSite(site.Id);
                });
            }
        }