public void OnItemAdded([CanBeNull] object sender, [NotNull] EventArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            var contentItem = Event.ExtractParameter(args, 0) as Item;

            Assert.IsNotNull(contentItem, "targetItem");

            var branchItem = contentItem.Branch;

            if (branchItem == null)
            {
                return;
            }

            var item = branchItem.InnerItem;

            Assert.IsTrue(item.Children.Count == 1, "branch item structure is corrupted: {0}".FormatWith(AuditFormatter.FormatItem(item)));


            var branch = item.Children[0];

            if (this.isAsync)
            {
                ReferenceReplacementJob.StartAsync(branch, contentItem);
            }
            else
            {
                ReferenceReplacementJob.Start(branch, contentItem);
            }
        }
Exemple #2
0
        public void Process([NotNull] CopyItemsArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            var parameters = args.Parameters;

            Assert.IsNotNull(parameters, "parameters");

            if (!string.Equals(parameters["mode"], "smart", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }


            var copies = args.Copies;

            Assert.IsNotNull(copies, "copies");

            foreach (var copy in copies)
            {
                if (this.isAsync)
                {
                    ReferenceReplacementJob.StartAsync(copy.Source, copy);
                }
                else
                {
                    ReferenceReplacementJob.Start(copy.Source, copy);
                }
            }

            // if mode is smart then this should be the last processor
            args.AbortPipeline();
        }
        public void Process([NotNull] ClientPipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            var parameters = args.Parameters;

            Assert.IsNotNull(parameters, "parameters");

            if (!string.Equals(parameters["mode"], "smart", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            var databaseName = parameters["database"];
            var database     = Factory.GetDatabase(databaseName);

            Assert.IsNotNull(database, "database");

            var copyId = parameters["copyId"];

            Assert.IsNotNull(copyId, "copyId");

            var sourceId = parameters["id"];

            Assert.IsNotNull(sourceId, "sourceId");

            if (this.isAsync)
            {
                ReferenceReplacementJob.StartAsync(database, sourceId, copyId);
            }
            else
            {
                ReferenceReplacementJob.Start(database, sourceId, copyId);
            }

            // if mode is smart then this should be the last processor
            args.AbortPipeline();
        }