Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }