public virtual void Process(IsHandledArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            Assert.ArgumentNotNull(args.ItemId, "args.ItemId");

            List <ID> ids = null;

            if (args.IncludeAllIds)
            {
                ids = AllHandledIds;
            }
            else
            {
                ids = FullyHandledIds;
            }
            if (ids.Contains(args.ItemId))
            {
                args.IsHandled = true;
                return;
            }
            //
            //ensure the root node has been loaded
            var database = args.Context.DataManager.Database;

            if (database != null)
            {
                if (!rootIsLoaded)
                {
                    lock (lockObject)
                    {
                        if (!rootIsLoaded)
                        {
                            database.GetItem(Sitecore.Strategy.Contacts.DataProviders.ItemIDs.ContactsFolder);
                            //item.GetChildren();
                            rootIsLoaded = true;
                        }
                    }
                }
            }

            if (ContactFacetIdFactory.GetContactFacetIDProvider().IsFacetItem(args.ItemId))
            {
                args.IsHandled = true;
                return;
            }
            if (ContactFacetIdFactory.GetContactFacetIDProvider().IsFacetMemberItem(args.ItemId))
            {
                args.IsHandled = true;
                return;
            }
            if (ContactFacetIdFactory.GetContactFacetIDProvider().IsFacetMemberValueItem(args.ItemId))
            {
                args.IsHandled = true;
                return;
            }

            //TODO: check dynamically generated item ids
        }
 public virtual void Process(IsHandledArgs args)
 {
     Assert.ArgumentNotNull(args, "args");
     Assert.ArgumentNotNull(args.ItemId, "args.ItemId");
     if (!args.IsHandled && Ids.Contains(args.ItemId))
     {
         args.IsHandled = true;
     }
 }
 public virtual void Process(IsHandledArgs args)
 {
     Assert.ArgumentNotNull(args, "args");
     Assert.ArgumentNotNull(args.ItemId, "args.ItemId");
     if (! args.IsHandled && Ids.Contains(args.ItemId))
     {
         args.IsHandled = true;
     }
 }
 public virtual void Process(GetItemDefinitionArgs args)
 {
     Assert.ArgumentNotNull(args, "args");
     Assert.ArgumentNotNull(args.ItemId, "args.ItemId");
     var args2 = new IsHandledArgs(args.ItemId, args.Context);
     CorePipeline.Run("contactFacetDataProvider.isHandled", args2);
     if (!args2.IsHandled)
     {
         args.AbortPipeline();
     }
 }
 public virtual void Process(GetChildIDsArgs args)
 {
     Assert.ArgumentNotNull(args, "args");
     Assert.ArgumentNotNull(args.ItemDefinition, "args.ItemDefinition");
     var args2 = new IsHandledArgs(args.ItemDefinition.ID, args.Context);
     args2.IncludeAllIds = true;
     CorePipeline.Run("contactFacetDataProvider.isHandled", args2);
     if (!args2.IsHandled)
     {
         args.AbortPipeline();
     }
 }
 public virtual void Process(IsHandledArgs args)
 {
     Assert.ArgumentNotNull(args, "args");
     Assert.ArgumentNotNull(args.ItemId, "args.ItemId");
     List<ID> ids = null;
     if (args.IncludeAllIds)
     {
         ids = AllHandledIds;
     }
     else
     {
         ids = FullyHandledIds;
     }
     if (ids.Contains(args.ItemId))
     {
         args.IsHandled = true;
         return;
     }
     //
     //ensure the root node has been loaded
     var database = args.Context.DataManager.Database;
     if (database != null)
     {
         var item = database.GetItem(Sitecore.Strategy.Contacts.DataProviders.ItemIDs.ContactsFolder);
         if (item != null)
         {
             //item.GetChildren();
         }
     }
     //
     //
     if (IDTableHelper.IsFacetItem(args.ItemId))
     {
         args.IsHandled = true;
         return;
     }
     if (IDTableHelper.IsFacetMemberItem(args.ItemId))
     {
         args.IsHandled = true;
         return;
     }
     if (IDTableHelper.IsFacetMemberValueItem(args.ItemId))
     {
         args.IsHandled = true;
         return;
     }
     //TODO: check dynamically generated item ids
 }