private void Schedule(HttpContextBase context) { if (!engine.SecurityManager.IsAuthorized(context.User, Selection.SelectedItem, Security.Permission.Publish)) { throw new UnauthorizedAccessException(); } if (string.IsNullOrEmpty(Selection.RequestValueAccessor("publishDate"))) { context.Response.WriteJson(new { Scheduled = false }); return; } else { var publishDate = DateTime.Parse(Selection.RequestValueAccessor("publishDate")); Selection.SelectedItem.SchedulePublishing(publishDate, engine); context.Response.WriteJson(new { Scheduled = true, Current = engine.GetNodeAdapter(Selection.SelectedItem).GetTreeNode(Selection.SelectedItem) }); } }
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); }