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()); } } } } } }); }
public virtual string OutputString(Item item4) { return item4.DisplayName + " (" + item4.TemplateName + " - " + item4.GetParentBucketItemOrParent().Name + ")"; }