public string CreateDiff() { var encoding = Encoding.GetEncoding(1252); var diff = new DbfDiff(new Dbf(Original, encoding), new Dbf(Modified, encoding)); return(diff.Serialize()); }
public void ApplyTest() { _modified.Records.Add(_modified.Records[0]); // add _modified.DeleteRecord(_modified.Records[1]); // delete _modified.Records[0][_modified.Fields[1]] = "401"; // update _modified.Records[2]["OPIS"] = _modified.CreateMemoEntry("This is a new memo entry!"); // update memo var diff = new DbfDiff(_original, _modified); // serialize to string string serializedDiff = diff.Serialize(); // get instance from json diff = DbfDiff.Deserialize(_original.Fields, serializedDiff); diff.ApplyTo(_original); _original.Save(); Assert.IsFalse(diff.HasChanges); _original = new Dbf(Path.Combine(".\\fixtures\\_Original", DbfName), _encoding); diff = new DbfDiff(_original, _modified); Assert.IsFalse(diff.HasChanges); }
public void UpdateMemoTest() { _modified.Records[2]["OPIS"] = _modified.CreateMemoEntry("This is new memo entry!"); var diff = new DbfDiff(_original, _modified); Assert.IsTrue(diff.Updated.Count == 1); Assert.IsTrue(diff.Updated.ContainsKey(2)); }
public void UpdateTest() { _modified.Records[0][_modified.Fields[1]] = "401"; var diff = new DbfDiff(_original, _modified); Assert.IsTrue(diff.HasChanges); Assert.IsTrue(diff.Updated.Count == 1); Assert.IsTrue(diff.Updated.ContainsKey(0)); }
public void InsertTest() { _modified.Records.Add(_modified.Records[0]); var diff = new DbfDiff(_original, _modified); Assert.IsTrue(diff.HasChanges); Assert.IsTrue(diff.Inserted.Count == 1); Assert.IsTrue(_modified.Records[0].Equals(_modified.Records[_modified.Records.Count - 1])); }
private static void Patch(string pathToDb, string pathToPatch, Encoding encoding) { var dbf = new Dbf(pathToDb, encoding); DbfDiff diff = DbfDiff.Deserialize(dbf.Fields, File.ReadAllText(pathToPatch)); diff.ApplyTo(dbf); dbf.Save(); }
public void DeleteTest() { Assert.IsFalse(_modified.Records[1].IsDeleted); _modified.DeleteRecord(_modified.Records[1]); var diff = new DbfDiff(_original, _modified); Assert.IsTrue(diff.HasChanges); Assert.IsTrue(diff.Deleted.Count == 1); }
public void Apply() { if (!File.Exists(Path)) { return; } var dbf = new Dbf(Path, Encoding.GetEncoding(1252)); var diff = DbfDiff.Deserialize(dbf.Fields, _serializedDiff); diff.ApplyTo(dbf); dbf.Save(); }
private static void PrintDiff(string dbfName, string pathToOriginal, string pathToModified, Encoding encoding) { DbfDiff diff = DbfDiff.Create(dbfName, pathToOriginal, pathToModified, encoding); Console.WriteLine(diff.Serialize()); }