public bool ReorderAll(int[] newSequence)
{
var oldCIds = ListWithNulls(cContent);
var oldPIds = GetPresentationIdWithSameLengthAsContent();
// some error checks
if(newSequence.Length != oldCIds.Count)
throw new Exception("Can't re-order - list length is different");
var newContentIds = new List<int?>();
var newPresIds = new List<int?>();
for (var seqItem = 0; seqItem < newSequence.Length; seqItem++)
{
var cId = oldCIds[newSequence[seqItem]];
newContentIds.Add(cId);
var pId = oldPIds[newSequence[seqItem]];
newPresIds.Add(pId);
}
var list = PrepareSavePackage(cContent, newContentIds);
list = PrepareSavePackage(cPresentation, newPresIds, list);
SaveChangedLists(list);
return true;
}