public IStandardTemplateItem GetNextSibling(Item item)
        {
            if (!BucketManager.IsItemContainedWithinBucket(item))
            {
                var siblingItem = item.Axes.GetNextSibling();
                return siblingItem != null ? siblingItem.AsStronglyTyped() : null;
            }
            try
            {
                var index = ContentSearchManager.GetIndex(new SitecoreIndexableItem(item));
                using (var context = index.CreateSearchContext())
                {
                    var bucketParent = item.GetParentBucketItemOrParent();
                    Assert.IsNotNull(bucketParent, "bucketParent != null");
                    var searchPredicate = PredicateBuilder.True<IStandardTemplateItem>();
                    searchPredicate = searchPredicate.And(p =>
                        p.AncestorIds.Contains(bucketParent.ID) &&
                        p.TemplateId != ID.Parse(Constants.BucketFolder) && p.Id != bucketParent.ID);
                    var nextSiblingItem =
                        context.GetSynthesisQueryable<IStandardTemplateItem>()
                            .Where(searchPredicate)
                            .OrderBy(result => result.Path)
                            .ToArray()
                            .SkipWhile(result => result.Id != item.ID)
                            .Skip(1)
                            .FirstOrDefault();

                    return nextSiblingItem;
                }
            }
            catch (Exception ex)
            {
                Log.Error("error getting next sibling", ex, this);
            }
            return null;
        }
        internal static void ShowAllSubFolders(Item contextItem)
        {
            #if NET40
            Parallel.ForEach(contextItem.Children, (item, state, i) =>
            #else
            contextItem.Children.ForEach(item =>
            #endif
            {
                foreach (var child in item.Children.ToList())
                {
                    ShowAllSubFolders(child);
                }
                if (Context.Job.IsNotNull())
                {
                    Context.Job.Status.Messages.Add("Making " + item.Paths.FullPath + " visible");
                }
                foreach (var subChild in item.Children.ToList())
                {
                    using (new EditContext(subChild, SecurityCheck.Disable))
                    {
                        ((CheckboxField)subChild.Fields["__Hidden"]).Checked = false;
                    }

                    using (new EditContext(subChild, SecurityCheck.Disable))
                    {
                        subChild.IsBucketItemCheckBox().Checked = false;

                        if (subChild.Fields["__BucketParentRef"].IsNotNull())
                        {
                            if (((LookupField)subChild.Fields["__BucketParentRef"]).TargetItem.IsNotNull())
                            {
                                ItemManager.MoveItem(subChild, ((LookupField)subChild.Fields["__BucketParentRef"]).TargetItem);
                            }
                            else
                            {
                                if (item.TemplateID.ToString() != Util.Constants.BucketFolder)
                                {
                                    ItemManager.MoveItem(subChild, contextItem.GetParentBucketItemOrParent());
                                }
                            }
                        }

                    }
                }
            });
        }
Esempio n. 3
0
 public virtual string OutputString(Item item4)
 {
     return item4.DisplayName + " (" + item4.TemplateName + " - " + item4.GetParentBucketItemOrParent().Name + ")";
 }