public void checkSerializationOfEntity() { var entity = new Entity { Name = "TEXT_COMBO-ENABLED ", Value = "AKTYWNY", Comment = String.Empty }; var serializer = new XmlSerializer(typeof(EntityElements)); EntityElements entites = new EntityElements() { Entities = new System.Collections.Generic.List <Entity>() }; entites.Entities.Add(entity); MemoryStream stream = new MemoryStream(); string xmlToCompare = @"<?xml version=""1.0""?><EntityElements xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""> <data name=""TEXT_COMBO-ENABLED""> <value>AKTYWNY</value> <comment /> </data></EntityElements>"; xmlToCompare = Regex.Replace(xmlToCompare, @"\s+", ""); //save entites to memory stream to test serialization in acctual file serializer.Serialize(stream, entites); //Delete neccessary elemnts for easier comparrision string stringStream = Encoding.Default.GetString(stream.ToArray()); stringStream = stringStream.Replace("\r\n", string.Empty); stringStream = stringStream.Replace(@"\", string.Empty); stringStream = Regex.Replace(xmlToCompare, @"\s+", ""); Assert.AreEqual(xmlToCompare, stringStream); }
public void checkDeserializationOfEntity() { var entity = new Entity { Name = "TEXT_COMBO-ENABLED", Value = "AKTYWNY", Comment = String.Empty }; var serializer = new XmlSerializer(typeof(EntityElements)); EntityElements entites = new EntityElements(); string xmlToCompare = @"<?xml version=""1.0""?><EntityElements xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""> <data name=""TEXT_COMBO-ENABLED""> <value>AKTYWNY</value> <comment /> </data></EntityElements>"; //XmlDocument was used since Deserializer have problem with xml file from memory stream XmlDocument cas = new XmlDocument(); cas.LoadXml(xmlToCompare); using (XmlNodeReader reader = new XmlNodeReader(cas)) { entites = (EntityElements)serializer.Deserialize(reader); } Assert.AreEqual(entites.Entities[0].Name, entity.Name); }
/// <summary> /// Reads xml file and returns data in entites /// </summary> /// <param name="filename">File filename from which data will be taken</param> /// <param name="currentList">Current list in view</param> /// <returns>All data from file</returns> public IEnumerable <Entity> Read(string filename, IEnumerable <Entity> currentList) { List <Entity> elements = new List <Entity>(); //Serialize file in order to easier setting values var serializer = new XmlSerializer(typeof(EntityElements)); EntityElements entites = new EntityElements(); using (Stream fs = new FileStream(filename, FileMode.Open)) { entites = (EntityElements)serializer.Deserialize(fs); } foreach (var item in entites.Entities) { if (!(_comparer.CompareEntityListWithObject(currentList, item))) { elements.Add(item); } } return(elements); }
/// <summary> /// Writes Entity list to Xml file /// </summary> /// <param name="listToSave">List which will be saved</param> /// <param name="filename">Filename to which data will be saved</param> /// <param name="password">Optional password for saving file</param> public void Write(IEnumerable <Entity> listToSave, string filename, string password = null) { var entityList = new EntityElements() { Entities = (List <Entity>)listToSave }; var serializer = new XmlSerializer(typeof(EntityElements)); using (Stream fs = new FileStream(filename, FileMode.Create)) { using (var writer = new XmlTextWriter(fs, Encoding.Unicode)) { //Add spaces between next tags writer.Formatting = Formatting.Indented; writer.Indentation = 4; serializer.Serialize(writer, entityList); } } if (password != null) { _encryptor.EncryptFileWithPassword(filename, password); } MessageBox.Show("Pomyślnie zapisano plik"); }