public static XChangeLog Update(string path, string value) { var log = PathMover.Update(root, path, value); XChangeLogBank.GiveBack(log); return(log); }
private static void CreateChangeLog(string path, Type type, object before, object after) { var log = XChangeLogBank.Take(); log.before = before; log.after = after; log.path = path; log.delta = 0; log.type = type; if (type == typeof(int)) { var b = (int)before; var a = (int)after; var delta = a - b; log.delta = delta; } else if (type == typeof(float)) { var b = (float)before; var a = (float)after; var delta = a - b; log.delta = delta; } else if (type == typeof(double)) { var b = (double)before; var a = (double)after; var delta = a - b; log.delta = delta; } changeLog = log; }
public static List <XChangeLog> UpdateAll(List <XTransaction> list) { var ret = new List <XChangeLog>(); foreach (var t in list) { var log = PathMover.Update(root, t.path, t.val); ret.Add(log); } foreach (var log in ret) { XChangeLogBank.GiveBack(log); } return(ret); }