public IEnumerable <T> GetAll() { List <T> entities = new List <T>(); Directory.CreateDirectory($"{this.type.Name}"); // Get all xml files from our type directory FileInfo[] files = this.directory.GetFiles("*.xml"); if (files == null) { return(entities); } foreach (var file in files) { using (FileStream fs = new FileStream(file.FullName, FileMode.Open)) { // deserialize object T objFromXml = (T)this.serializer.Deserialize(fs); if (this.objectHasPasswordProperty) { XmlMaker.EncodePasswordAndSetToObject(ref objFromXml); } entities.Add(objFromXml); } } return(entities); }
public T Get(int id) { T objectFromXml; // get file by id FileInfo file = this.directory.GetFiles($"{type.Name}{id}.xml").FirstOrDefault(); if (file == null) { return(null); } ; using (FileStream fs = new FileStream($"{this.type.Name}/{file.Name}", FileMode.Open)) { // deserialize object objectFromXml = (T)this.serializer.Deserialize(fs); if (this.objectHasPasswordProperty) { // encode password XmlMaker.EncodePasswordAndSetToObject(ref objectFromXml); } } return(objectFromXml); }
public void Update(T objectToUpdate) { Thread.Sleep(200); using (FileStream fs = new FileStream($"{this.type.Name}/{this.type.Name}{typeof(T).GetProperty("Id").GetValue(objectToUpdate)}.xml", FileMode.Create)) { if (this.objectHasPasswordProperty) { // decode password XmlMaker.DecodePasswordAndSetToObject(ref objectToUpdate); } // serialize this.serializer.Serialize(fs, objectToUpdate); if (this.objectHasPasswordProperty) { // encode password XmlMaker.EncodePasswordAndSetToObject(ref objectToUpdate); } } }