<summary> Data set base class </summary> <typeparam name= "T" ></typeparam> Public abstract class Basetb<t> where T:class { private static string _textfile = Path.Combine (configurationmanager.appsettings["Textdbdir"], typeof (T). Name + "TB.txt"); private static list<t> _data = null; <summary> Data containers </summary> Internal Static list<t> Container { Get { if (_data = null) { if (file.exists (_textfile)) { _data = jsonhelper.deserialize<list<t>> (File.readalltext (_textfile)); } Else { _data = new list<t> (); } } return _data; } } <summary> Get Records </summary> <param name= "obj" ></param> <returns></returns> Public abstract t get (t obj); <summary> Property Copy </summary> <param name= "Obj1" ></param> <param name= "Obj2" ></param> public abstract void Copy (t obj1, T obj2); <summary> Add a record </summary> <param name= "obj" ></param> <returns></returns> public bool Add (T obj) { BOOL result = FALSE; T item = Get (obj); if (item = NULL) { Container.add (obj); Save (); result = true; } return result; } <summary> Update records </summary> <param name= "obj" ></param> <returns></returns> public bool Update (T obj) { BOOL result = FALSE; T item = Get (obj); if (item!= NULL) { Copy (item, obj); Save (); result = true; } return result; } <summary> Delete a record </summary> <param name= "obj" ></param> <returns></returns> public bool Remove (T obj) { BOOL result = FALSE; T item = Get (obj); if (item!= NULL) { Container.remove (item); Save (); result = true; } return result; } <summary> Save data </summary> internal void Save () { File.writealltext (_textfile, Jsonhelper.serialize (Container)); } } |