public static int Create <T>(this IList <T> items, T graph, ISerializeWrapper serializer = null) where T : CRUDObject { ListExtensions.SetSerializerIfNull(ref serializer); graph.Id = items.Select(x => x.Id).Concat(new int[] { 0 }).Max() + 1; graph.SortIndex = items.Select(x => x.SortIndex).Concat(new int[] { 0 }).Max() + 1; items.Add(serializer.Clone(graph)); return(graph.Id); }
public static void Update <T>(this IList <T> items, int id, Func <T, int> getIdFunc, T graph, ISerializeWrapper serializer = null) { ListExtensions.SetSerializerIfNull(ref serializer); var target = items.FirstOrDefault(x => getIdFunc(x) == id); var index = items.IndexOf(target); items.RemoveAt(index); items.Insert(index, serializer.Clone(graph)); }
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 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())); }