private PathData EnsureDraft(ContentItem item) { var page = Find.ClosestPage(item); if (page.ID == 0) { return(new PathData(page, item)); } var cvr = Engine.Resolve <ContentVersionRepository>(); var vm = Engine.Resolve <IVersionManager>(); var path = PartsExtensions.EnsureDraft(vm, cvr, "", item.GetVersionKey(), item); return(path); }
private PathData EnsureDraft(ContentItem item) { var page = Find.ClosestPage(item); //New/Draft master version or a version of an item if (page.ID == 0 || (!page.VersionOf.HasValue && (page.State == ContentState.New || page.State == ContentState.Draft))) { return(new PathData(page, item)); } var cvr = Engine.Resolve <ContentVersionRepository>(); var vm = Engine.Resolve <IVersionManager>(); var path = PartsExtensions.EnsureDraft(vm, cvr, "", item.GetVersionKey(), item); return(path); }
private void Organize(HttpContextBase context, SelectionUtility selection) { var navigator = engine.Resolve <Navigator>(); var persister = engine.Persister; var integrity = engine.IntegrityManager; var versions = engine.Resolve <IVersionManager>(); var versionRepository = engine.Resolve <ContentVersionRepository>(); string versionIndex = selection.RequestValueAccessor(PathData.VersionIndexQueryKey); string versionKey = selection.RequestValueAccessor(PathData.VersionKeyQueryKey); var path = PartsExtensions.EnsureDraft(versions, versionRepository, versionIndex, versionKey, selection.SelectedItem); ContentItem item = path.CurrentItem; ContentItem page = path.CurrentPage; item.ZoneName = selection.RequestValueAccessor("zone"); var beforeItem = PartsExtensions.GetBeforeItem(navigator, selection.RequestValueAccessor, page); ContentItem parent; if (beforeItem != null) { parent = beforeItem.Parent; int newIndex = parent.Children.IndexOf(beforeItem); ThrowUnlessNull(integrity.GetMoveException(item, parent)); Utility.Insert(item, parent, newIndex); } else { parent = PartsExtensions.GetBelowItem(navigator, selection.RequestValueAccessor, page); ThrowUnlessNull(integrity.GetMoveException(item, parent)); Utility.Insert(item, parent, parent.Children.Count); } Utility.UpdateSortOrder(parent.Children); versionRepository.Save(page); }