Exemple #1
0
        /// <summary>
        /// Processing all the published items.
        /// </summary>
        /// <param name="args"><see cref="PublishEndResultBatchArgs"/></param>
        public void ProcessChangedItems(PublishEndResultBatchArgs args)
        {
            var changedItems   = new List <ChangedItem>();
            var sourceDatabase = _databaseFactory.GetDatabase(args.JobData.SourceDatabaseName);

            // Process deleted items first
            var itemResults            = args.Batch.ToList();
            var deletedResults         = itemResults.Where(x => x.Type == ManifestOperationResultType.Deleted);
            var createdModifiedResults = itemResults.Where(x => x.Type != ManifestOperationResultType.Deleted);
            var deletedResultsList     = deletedResults.ToList();

            if (deletedResultsList.Any())
            {
                changedItems.AddRange(deletedResultsList.Select(deletedResult => ProcessDeletedItem(sourceDatabase, deletedResult)));
            }

            var createdModifiedResultsList = createdModifiedResults.ToList();

            if (createdModifiedResultsList.Any())
            {
                changedItems.AddRange(createdModifiedResultsList.Select(itemResult => ProcessChangedItem(sourceDatabase, itemResult)).Where(changedItem => changedItem != null));
            }

            if (changedItems.Count > 0)
            {
                // Insert specific things that you would like to do
                // Examples: pass the changedItems to another custom pipeline, raise more events, or custom remote events with the changedItems as part of EventData
            }
        }
        private void SendAbortMessage(PublishEndResultBatchArgs args)
        {
            MailMessage message = new MailMessage(this.MailFrom, this.MailTo);

            message.Subject = $"Publishing job {args.JobData.JobId} aborted at {DateTime.Now}";
            message.Body    = $"A publishing job was just aborted. Job Id: {args.JobData.JobId} \n Message: {args.Message}";
            MainUtil.SendMail(message);
        }
Exemple #3
0
        public void Process(PublishEndResultBatchArgs args)
        {
            if (args.TotalResultCount.Equals(0))
            {
                return;
            }

            _publishingLog.Debug("Processing Published Items and Transforming into a list of ChangedItem");
            ProcessChangedItems(args);
        }
 public void Process(PublishEndResultBatchArgs args)
 {
     if (args.Aborted)
     {
         SendAbortMessage(args);
     }
     else
     {
         SendDetailsMessage(args);
     }
 }
        private void SendDetailsMessage(PublishEndResultBatchArgs args)
        {
            MailMessage message = new MailMessage(this.MailFrom, this.MailTo);

            message.Subject = $"Publishing job {args.JobData.JobId} finished at {DateTime.Now}";
            var itemsAffected = args.Batch.Select(b => b.EntityId).Distinct().Count();

            message.Body  = "Finished publishing job!\n";
            message.Body += $"({itemsAffected}) items were published\n";
            message.Body += $"Date: {args.JobData.PublishDate}\n";
            message.Body += $"Job Id: {args.JobData.JobId}\n";
            message.Body += $"Username: {args.JobData.Username}\n";
            MainUtil.SendMail(message);
        }