/// <inheritdoc />
        public override void Execute(CommandContext context)
        {
            Item obj = context.Items[0];
            NameValueCollection parameters = context.Parameters;
            string str1;

            if (parameters == null)
            {
                str1 = (string)null;
            }
            else
            {
                string index = "tagtree";
                str1 = parameters[index];
            }
            string str2   = str1;
            bool   flag   = str2 != null && bool.Parse(str2);
            var    source = new List <Item>();

            if (flag)
            {
                var descendants = obj.Axes.GetDescendants().Where(x => x.IsDerived(Constants.Templates.ReletedContentTagging));
                if (obj.IsDerived(Constants.Templates.ReletedContentTagging))
                {
                    source.Add(obj);
                }
                source.AddRange(descendants);
            }
            else if (obj.IsDerived(Constants.Templates.ReletedContentTagging))
            {
                source.Add(obj);
            }
            if (!source.Any())
            {
                return;
            }
            MessageBus messageBus = this.MessageBusFactory.Create();
            JobContextMessageHandler contextMessageHandler = new JobContextMessageHandler();

            messageBus.Subscribe(contextMessageHandler);
            ClientPipelineArgs args = new ClientPipelineArgs();

            args.CustomData["items"]      = source;
            args.CustomData["messageBus"] = messageBus;
            Context.ClientPage.Start(this, "Run", args);
        }
示例#2
0
        private void TagItem(Item item)
        {
            try
            {
                var ContentTaggingRunner = ServiceLocator.ServiceProvider.GetService <IContentTaggingRunner>();
                var MessageBusFactory    = ServiceLocator.ServiceProvider.GetService <IMessageBusFactory>();

                var messageBus = MessageBusFactory.Create();

                JobContextMessageHandler contextMessageHandler = new JobContextMessageHandler();
                messageBus.Subscribe((Sitecore.ContentTagging.Core.Messaging.IMessageHandler)contextMessageHandler);

                ContentTaggingRunner.Run(item, messageBus);
            }
            catch (System.Exception ex)
            {
                Sitecore.Diagnostics.Log.Error($"Failed to tag item {item.ID}", ex, this);
            }
        }