public static void MoveDown <T>(this IList <T> List, int Index) where T : CRUDObject => ListExtensions.Move(List, Index, ++Index);
 public static void MoveDown(this IList <object> List, int Index) => ListExtensions.Move(List, Index, ++Index);
 public static T Read <T>(this IList <T> items, int id, ISerializeWrapper serializer = null) where T : CRUDObject
 {
     ListExtensions.SetSerializerIfNull(ref serializer);
     return(serializer.Clone(items.FirstOrDefault(x => x.Id == id)));
 }
 public static void MoveUp(this IList <object> List, int Index) => ListExtensions.Move(List, Index, --Index);
 public static IList <T> ReadAll <T>(this IList <T> items, ISerializeWrapper serializer = null) where T : CRUDObject
 {
     ListExtensions.SetSerializerIfNull(ref serializer);
     return(serializer.Clone(items.OrderBy(graph => graph.SortIndex).ToList()));
 }