/// <summary>
        /// Deletes the item.
        /// </summary>
        /// <param name="itemId">The item id.</param>
        /// <param name="context">The context.</param>
        protected virtual void DeleteItem(ID itemId, IndexDeleteContext context)
        {
            Assert.ArgumentNotNull(itemId, "itemId");
            Assert.ArgumentNotNull(context, "context");

            context.DeleteDocuments(context.Search(new PreparedQuery(this.GetItemQuery(itemId))).Ids);
        }
        /// <summary>
        /// Deletes the tree.
        /// </summary>
        /// <param name="rootId">The root id.</param>
        /// <param name="context">The context.</param>
        protected void DeleteTree(ID rootId, IndexDeleteContext context)
        {
            Assert.ArgumentNotNull(rootId, "rootId");
            Assert.ArgumentNotNull(context, "context");

            context.DeleteDocuments(context.Search(new PreparedQuery(this.GetDescendantsQuery(rootId))).Ids);
        }
        /// <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();
                }
            }
        }
예제 #4
0
 protected virtual void DeleteVersion(ID id, string language, string version, IndexDeleteContext context)
 {
     Assert.ArgumentNotNull(id, "id");
     Assert.ArgumentNotNull(language, "language");
     Assert.ArgumentNotNullOrEmpty(version, "version");
     Assert.ArgumentNotNull(context, "context");
     context.DeleteDocuments(context.Search(new PreparedQuery(this.GetVersionQuery(id, language, version))).Ids);
 }
예제 #5
0
 public void DeleteVersion(Item version)
 {
     Assert.ArgumentNotNull(version, "version");
     if (this.IsMatch(version))
     {
         using (IndexDeleteContext context = this._index.CreateDeleteContext())
         {
             this.DeleteVersion(version.ID, version.Language.ToString(), version.Version.ToString(), context);
             context.Commit();
         }
     }
 }
예제 #6
0
 public void DeleteTree(Item root)
 {
     Assert.ArgumentNotNull(root, "root");
     if (root.Axes.IsDescendantOf(this._root))
     {
         using (IndexDeleteContext context = this._index.CreateDeleteContext())
         {
             this.DeleteTree(root.ID, context);
             context.Commit();
         }
     }
 }
예제 #7
0
 public void DeleteItem(Item item)
 {
     Assert.ArgumentNotNull(item, "item");
     if (this.IsMatch(item))
     {
         using (IndexDeleteContext context = this._index.CreateDeleteContext())
         {
             this.DeleteItem(item.ID, context);
             context.Commit();
         }
     }
 }
        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();
                }
            }
        }
예제 #9
0
        /// <summary>
        /// Deletes the specific version information from the index.
        /// </summary>
        /// <param name="id">The item id.</param>
        /// <param name="language">The language.</param>
        /// <param name="version">The version.</param>
        /// <param name="context">The context.</param>
        protected override void DeleteVersion(ID id, string language, string version, IndexDeleteContext context)
        {
            base.DeleteVersion(id, language, version, context);
            ItemUri versionUri  = new ItemUri(id, Language.Parse(language), Version.Parse(version), Factory.GetDatabase(this.Database));
            Item    versionItem = Sitecore.Data.Database.GetItem(versionUri);

            if (versionItem != null && this.IsCatalogItem(versionItem))
            {
                context.DeleteDocuments(context.Search(new PreparedQuery(this.GetVirtualProductsQuery(versionItem)), int.MaxValue).Ids);
            }
        }
 /// <summary>
 /// Deletes the specific version information from the index.
 /// </summary>
 /// <param name="id">The item id.</param>
 /// <param name="language">The language.</param>
 /// <param name="version">The version.</param>
 /// <param name="context">The context.</param>
 protected override void DeleteVersion(ID id, string language, string version, IndexDeleteContext context)
 {
   base.DeleteVersion(id, language, version, context);
   ItemUri versionUri = new ItemUri(id, Language.Parse(language), Version.Parse(version), Factory.GetDatabase(this.Database));
   Item versionItem = Sitecore.Data.Database.GetItem(versionUri);
   if (versionItem != null && this.IsCatalogItem(versionItem))
   {
     context.DeleteDocuments(context.Search(new PreparedQuery(this.GetVirtualProductsQuery(versionItem)), int.MaxValue).Ids);
   }
 }