Ejemplo n.º 1
0
        public void HandleEvent(object sender, EventArgs eventArgs)
        {
            if (!(string.IsNullOrWhiteSpace(this.Instance) ||
                  this.Instance.Replace('-', '_').Equals(
                      Sitecore.Configuration.Settings.InstanceName.Replace('-', '_'),
                      StringComparison.InvariantCultureIgnoreCase)))
            {
                return;
            }

            SitecoreEventArgs scArgs =
                eventArgs as SitecoreEventArgs;

            if (scArgs == null)
            {
                Log.Error(
                    this + " : Unexpected everntArgs type in HandleEvent : " + eventArgs.GetType(),
                    this);
                return;
            }

            LogEventData remoteLogEventData =
                scArgs.Parameters[0] as LogEventData;

            if (remoteLogEventData == null)
            {
                Log.Info(this + " : unexpected scArgs.Parameter[0] in HandleEvent : " + remoteLogEventData, this);
                return;
            }

            this.HandleLogEvent(remoteLogEventData);
        }
        public void Process(object sender, EventArgs args)
        {
            SitecoreEventArgs sArgs = args as SitecoreEventArgs;

            Sitecore.Publishing.Publisher pbl = sArgs.Parameters[0] as Sitecore.Publishing.Publisher;

            //This prevents from publishing the whole site by mistake
            if (pbl.Options.Deep)
            {
                var allowPublishigWithSubitems = false;
                customPublishConfig = sitecoreService.GetItem <ICustom_Publishing_Config>(ItemReferences.Instance.CustomPublishingConfig);
                if (customPublishConfig != null)
                {
                    allowPublishigWithSubitems = customPublishConfig.Allow_Publishing_With_Subitems;
                }

                if (allowPublishigWithSubitems == false)
                {
                    var rootItem = pbl.Options.RootItem;
                    if (rootItem != null && (rootItem.TemplateID.Guid.Equals(new Guid(Constants.PublicationRootTemplateID))
                                             ||
                                             rootItem.TemplateID.Guid.Equals(new Guid(Constants.HomeRootTemplateID))
                                             ))
                    {
                        pbl.Options.Deep = false;
                    }
                }
            }
        }
Ejemplo n.º 3
0
        public void Ended(object sender, EventArgs args)
        {
            Assert.IsNotNull(args, nameof(args));

            try
            {
                SitecoreEventArgs jobargs    = args as SitecoreEventArgs;
                string            index_name = jobargs.Parameters[0] as string;
                var index = ContentSearchManager.Indexes.SingleOrDefault(idx => idx.Name == index_name);

                var payload = new IndexingUpdate
                {
                    IndexName                = index.Name,
                    State                    = State.Ended,
                    IndexRebuildTime         = BuildTime(index),
                    IndexRebuildMilliseconds = IndexHealthHelper.GetIndexRebuildTime(index.Name),
                    ThroughPut               = ThroughPut(index),
                    NumberOfDocuments        = index.Summary.NumberOfDocuments
                };

                new Services.NotificationService <IndexingUpdate>().Send(payload);
            }
            catch (Exception)
            {
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Eventhandler, called after saving a item
        /// </summary>
        /// <param name="sender">Sender</param>
        /// <param name="args">event arguments</param>
        public void OnItemSaved(object sender, EventArgs args)
        {
            SitecoreEventArgs eventArgs = args as SitecoreEventArgs;

            try
            {
                Assert.IsNotNull(eventArgs, "eventArgs");
                Item savedItem = eventArgs.Parameters[0] as Item;
                Assert.IsNotNull(savedItem, "savedItem");

                // ignore tasks themselves, orphand items and only in the context of the 'shell'
                if ((savedItem.Template.FullName != Constants.ScheduleTemplatePath) &&
                    (savedItem.Paths.FullPath.StartsWith(Constants.Orphan, StringComparison.OrdinalIgnoreCase) == false) &&
                    (Sitecore.Context.GetSiteName() == Constants.SiteNameShell))
                {
                    Database db   = Sitecore.Context.ContentDatabase;
                    Language lang = savedItem.Language;

                    TaskBuilder taskBuilder = new TaskBuilder();
                    taskBuilder.CreateItemPublishSchedule(savedItem, lang, db, true);
                    taskBuilder.CreateItemPublishSchedule(savedItem, lang, db, false);
                    taskBuilder.CreateItemVersionPublishSchedule(savedItem, lang, db, true);
                    taskBuilder.CreateItemVersionPublishSchedule(savedItem, lang, db, false);
                }
            }
            catch (Exception ex)
            {
                Log.Error("Error OnItemSaved in Automated Publisher", ex, this);
            }
        }
        /// <summary>
        /// Handles the OnRemoveVersion event of the Provider control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        private void Provider_OnRemoveVersion(object sender, EventArgs e)
        {
            Assert.ArgumentNotNull(sender, "sender");
            Assert.ArgumentNotNull(e, "e");

            var database = SitecoreEventArgs.GetObject(e, 0) as Database;

            if ((database != null) && (database.Name == this.targetDatabase.Name))
            {
                ID id = SitecoreEventArgs.GetID(e, 1);
                Assert.IsNotNull(id, "ID is not passed to RemoveVersion handler");

                var language = SitecoreEventArgs.GetObject(e, 2) as Language;
                Assert.IsNotNull(language, "Language is not passed to RemoveVersion handler");

                var version = SitecoreEventArgs.GetObject(e, 3) as Version;
                Assert.IsNotNull(version, "Version is not passed to RemoveVersion handler");

                using (IndexDeleteContext context = this.remoteIndex.CreateDeleteContext())
                {
                    this.DeleteVersion(id, language.ToString(), version.ToString(), context);
                    context.Commit();
                }
            }
        }
Ejemplo n.º 6
0
        private static SendFilesEventRemote CreateSendFilesEventRemote(EventArgs args)
        {
            SitecoreEventArgs sea       = (SitecoreEventArgs)args;
            DateTime          startDate = (DateTime)sea.Parameters[0];
            DateTime          endDate   = (DateTime)sea.Parameters[1];

            return(new SendFilesEventRemote(startDate, endDate));
        }
        /// <summary>
        /// Event handler to re-load configured publish exclusions, when publish exclusions is saved
        /// </summary>
        /// <param name="sender">sender</param>
        /// <param name="args">event arguments</param>
        public virtual void OnItemSaved(object sender, EventArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            if (!ShouldExecuteEventHandlers(args))
            {
                return;
            }

            SitecoreEventArgs saveEventArgs = args as SitecoreEventArgs;
            Item contextItem = saveEventArgs.Parameters[0] as Item;

            ReinitializeRepository(contextItem);
        }
Ejemplo n.º 8
0
        public void Ended(object sender, EventArgs args)
        {
            try
            {
                if (args != null)
                {
                    SitecoreEventArgs sitecoreEventArg = args as SitecoreEventArgs;
                    if (sitecoreEventArg != null)
                    {
                        Publisher parameters = sitecoreEventArg.Parameters[0] as Publisher;
                        if (parameters != null)
                        {
                            try
                            {
                                var publishData = new PublishUpdate
                                {
                                    UserName            = parameters.Options.UserName,
                                    CompareRevisions    = parameters.Options.CompareRevisions,
                                    Deep                = parameters.Options.Deep,
                                    FromDate            = parameters.Options.FromDate,
                                    Language            = parameters.Options.Language.Name,
                                    Mode                = parameters.Options.Mode.ToString(),
                                    PublishDate         = parameters.Options.PublishDate,
                                    PublishingTargets   = parameters.Options.PublishingTargets,
                                    PublishRelatedItems = parameters.Options.PublishRelatedItems,
                                    RecoveryId          = parameters.Options.RecoveryId,
                                    RepublishAll        = parameters.Options.RepublishAll,
                                    RootItemPath        = parameters.Options.RootItem?.Paths.FullPath,
                                    State               = State.Ended
                                };

                                User user = User.FromName(parameters.Options.UserName, false);
                                if (user != null)
                                {
                                    publishData.FullName = user.Profile.FullName;
                                }

                                new Services.NotificationService <PublishUpdate>().Send(publishData);
                            }
                            catch (Exception)
                            {
                            }
                        }
                    }
                }
            }
            catch (Exception exception)
            {
            }
        }
        void Provider_OnRemoveItem(object sender, EventArgs e)
        {
            Assert.ArgumentNotNull(sender, "sender");
            Assert.ArgumentNotNull(e, "e");
            Database database = SitecoreEventArgs.GetObject(e, 0) as Database;

            if ((database != null) && (database.Name == this.m_database.Name))
            {
                ID iD = SitecoreEventArgs.GetID(e, 1);
                Assert.IsNotNull(iD, "ID is not passed to RemoveItem handler");
                solr.Delete(IdHelper.NormalizeGuid(iD.ToString(), false));
                solr.Commit();
            }
        }
Ejemplo n.º 10
0
        public void OnItemCopying(object sender, EventArgs args)
        {
            SitecoreEventArgs args2 = args as SitecoreEventArgs;

            if (args2 != null)
            {
                Item item = Event.ExtractParameter(args, 0) as Item;
                if ((item != null) && (item.TemplateID == PollConstants.PollTemplateID))
                {
                    args2.Result.Cancel = true;
                    Context.ClientPage.ClientResponse.Alert("Can't copy DMS Poll items.");
                }
            }
        }
        public void OnItemSaved_should_not_add_entry_in_table_for_not_integration_item()
        {
            // Arrange
            var item = this.CreateItems(new TestItems {
                { "1", "GUID1" }
            }, itemName => false)[0];
            var eventArgs = new SitecoreEventArgs("testEvent", new object[] { item }, new EventResult());

            // Act
            this.provider.OnItemSaved(this, eventArgs);

            // Assert
            this.tableProvider.DidNotReceiveWithAnyArgs().Add(default(IDTableEntry));
        }
        private void Provider_OnUpdateItem(object sender, EventArgs e)
        {
            Assert.ArgumentNotNull(sender, "sender");
            Assert.ArgumentNotNull(e, "e");
            Database database = SitecoreEventArgs.GetObject(e, 0) as Database;

            if ((database != null) && (database.Name == this._database.Name))
            {
                Item item = SitecoreEventArgs.GetObject(e, 1) as Item;
                if (item != null)
                {
                    this.UpdateItem(item);
                }
            }
        }
        public void OnItemSaved_should_do_nothing_if_IntegrationDisabler_is_enabled()
        {
            // Arrange
            var item = this.CreateItems(new TestItems {
                { "1", "GUID1" }
            })[0];
            var eventArgs = new SitecoreEventArgs("testEvent", new object[] { item }, new EventResult());

            // Act
            using (new IntegrationDisabler())
            {
                this.provider.OnItemSaved(this, eventArgs);
            }

            // Assert
            this.tableProvider.DidNotReceiveWithAnyArgs().Add(default(IDTableEntry));
        }
        private void Provider_OnRemoveItem(object sender, EventArgs e)
        {
            Assert.ArgumentNotNull(sender, "sender");
            Assert.ArgumentNotNull(e, "e");
            Database database = SitecoreEventArgs.GetObject(e, 0) as Database;

            if ((database != null) && (database.Name == this._database.Name))
            {
                ID iD = SitecoreEventArgs.GetID(e, 1);
                Assert.IsNotNull(iD, "ID is not passed to RemoveItem handler");
                using (IndexDeleteContext context = this._index.CreateDeleteContext())
                {
                    this.DeleteItem(iD, context);
                    context.Commit();
                }
            }
        }
    public void OnItemAdding(object sender, EventArgs args)
    {
        Item dbItem       = master.GetItem("/sitecore/content/Administration/Development Settings/Lookups");
        Item selectedItem = Event.ExtractParameter(args, 0) as Item;

        foreach (Item item in dbItem.Axes.GetDescendants())
        {
            if (item.Template.Name.Contains("entry"))
            {
                if (item.Fields["Key"].Value == selectedItem.Fields["Key"].Value)
                {
                    SitecoreEventArgs evt = args as SitecoreEventArgs;
                    evt.Result.Cancel = true;
                    Sitecore.Context.ClientPage.ClientResponse.Alert("Item already exists");
                }
            }
        }
    }
        private Database GetDatabse(SitecoreEventArgs args)
        {
            var indexName = ((Sitecore.Events.SitecoreEventArgs)(args)).Parameters[0] as string;

            var crawlers =
                ContentSearchManager.GetIndex(indexName).Crawlers as
                System.Collections.Generic.List <Sitecore.ContentSearch.IProviderCrawler>;

            if (crawlers != null && crawlers.Count > 0)
            {
                var crawler = crawlers[0] as Sitecore.ContentSearch.SitecoreItemCrawler;
                if (crawler != null && !string.IsNullOrEmpty(crawler.Database))
                {
                    return(Factory.GetDatabase(crawler.Database));
                }
            }

            return(null);
        }
        public void OnItemSaved_should_add_entry_in_table_for_active_integration_item()
        {
            // Arrange
            var item = this.CreateItems(new TestItems {
                { "1", "GUID1" }
            })[0];

            using (new ItemIsContentItem(item))
            {
                var eventArgs = new SitecoreEventArgs("testEvent", new object[] { item }, new EventResult());

                // Act
                this.provider.OnItemSaved(this, eventArgs);

                // Assert
                this.tableProvider.Received()
                .Add(
                    Arg.Is <IDTableEntry>(x => x.Prefix == PrefixSave && x.CustomData == "GUID1" && x.ParentID == item.ParentID));
            }
        }
        public void OnPublishComplete(object sender, EventArgs args)
        {
            SitecoreEventArgs pubArgs         = (SitecoreEventArgs)args;
            var optionsList                   = Event.ExtractParameter(pubArgs, 0) as IEnumerable <DistributedPublishOptions>;
            DistributedPublishOptions options = optionsList.First();

            Database database = Factory.GetDatabase(options.SourceDatabaseName);
            string   ItemPath = string.Empty, Languages = string.Empty;
            string   ItemId = options.RootItemId.ToString();
            Item     item   = database.GetItem(new ID(ItemId));

            if (item != null)
            {
                return;
            }
            ItemPath = item.Paths.Path;

            foreach (DistributedPublishOptions opts in optionsList)
            {
                Languages += opts.LanguageName + ",";
            }

            SendPublishCompletionEmail(Context.User.Name, Context.User.Profile.Email, ItemPath, Languages, options.Deep, options.PublishRelatedItems, options.PublishDate);
        }
 protected virtual void OnItemTransferred(SitecoreEventArgs eventArgs, Item item)
 {
     throw new NotImplementedException();
 }
 protected virtual void OnItemMoving(SitecoreEventArgs eventArgs, Item item, ID oldParent, ID newParent)
 {
     throw new NotImplementedException();
 }
 protected virtual void OnItemTemplateChanged(SitecoreEventArgs eventArgs, Item item, Template oldTemplate, Template newTemplate)
 {
     throw new NotImplementedException();
 }
 protected virtual void OnItemCopying(SitecoreEventArgs eventArgs, Item item, Item targetItem, string copyName, ID copyId)
 {
     throw new NotImplementedException();
 }
 protected virtual void OnItemSaved(SitecoreEventArgs eventArgs, Item item, ItemChanges itemChanges)
 {
     throw new NotImplementedException();
 }
 protected virtual void OnItemCopied(SitecoreEventArgs eventArgs, Item item, Item itemCopy)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 25
0
 protected void DialogCreateRedirect(SitecoreEventArgs args)
 {
 }
 protected virtual void OnItemMoved(SitecoreEventArgs eventArgs, Item item, ID targetParent)
 {
     throw new NotImplementedException();
 }
 protected virtual void OnItemCreating(object sender, SitecoreEventArgs eventArgs, ItemCreatingEventArgs itemCreating)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 28
0
 protected override void OnItemCopied(SitecoreEventArgs eventArgs, Item item, Item itemCopy)
 {
     ItemCopyingService.ConfiguredInstance.RemapToRelativeDataSources(item, itemCopy);
 }
 protected virtual void OnItemSaving(SitecoreEventArgs eventArgs, Item item)
 {
     throw new NotImplementedException();
 }