private void Sort(object sender, int offset)
{
ContentItem item = GetAssociatedItem(sender);
var path = EnsureDraft(item);
if (path.CurrentItem != null && path.CurrentItem != path.CurrentPage)
{
var parent = path.CurrentItem.Parent;
var siblings = GetItems().Select(ci => parent.Children.FirstOrDefault(s => s.VersionOf.Value == ci || s == ci)).ToList();
var currentIndex = siblings.IndexOf(path.CurrentItem);
var newIndex = currentIndex + offset;
if (newIndex >= 0)
{
if (newIndex < siblings.Count - 1)
newIndex = parent.Children.IndexOf(siblings[newIndex]);
else
newIndex = parent.Children.Count;
Utility.Insert(path.CurrentItem, parent, newIndex);
Utility.UpdateSortOrder(parent.Children).ToList();
UpdateItemFromTopEditor(path);
var cvr = Engine.Resolve<ContentVersionRepository>();
cvr.Save(path.CurrentPage);
}
}
RedirectToVersionOfSelf(path.CurrentPage);
}