Esempio n. 1
0
        public void Save()
        {
            if (string.IsNullOrEmpty(File))
            {
                string filename = string.Empty;
                // ReSharper disable LoopCanBeConvertedToQuery
                foreach (char chr in Name)
                // ReSharper restore LoopCanBeConvertedToQuery
                {
                    if (char.IsLetter(chr))
                    {
                        filename += chr.ToString();
                    }
                }

                if (filename == "")
                {
                    filename = "1";
                }

                File = CHelper.GetUniqueFileName(Path.Combine(CSettings.DataFolder, CConfig.FolderPlaylists), filename + ".xml");
            }

            SPlaylist data = new SPlaylist {
                Info = { Name = Name }, Songs = Songs.Select(plSong => plSong.ToStruct()).ToArray()
            };

            var xml = new CXmlSerializer();

            xml.Serialize(File, data);
        }
Esempio n. 2
0
        public void TestDefaultValues()
        {
            const string s = _Head + @"<root>
  <I>1</I>
  <S>2</S>
  <F>3</F>
  <D>4</D>
  <Sub>
    <I>22</I>
  </Sub>
</root>";

            _AssertSerDeserMatch <SDefault>(s);
            var      xml = new CXmlDeserializer(new CXmlErrorHandler(exception => { }));
            SDefault foo = xml.DeserializeString <SDefault>(@"<root />");

            Assert.AreEqual(foo.I, 1337);
            Assert.AreEqual(foo.F, null);
            Assert.AreEqual(foo.S, "Foo");
            Assert.AreEqual(foo.D, 666);
            Assert.AreEqual(foo.Sub.I, 111);
            string newXml = new CXmlSerializer().Serialize(foo);

            Assert.AreEqual(_Head + @"<root>
  <Sub />
</root>", newXml);
        }
Esempio n. 3
0
        public void TestRealFiles()
        {
            Type[] types = new Type[]
            { typeof(SThemeCover), typeof(CConfig.SConfig), typeof(SThemeScreen), typeof(SDefaultFonts), typeof(SSkin), typeof(STheme), typeof(Dictionary <string, string>) };
            string filePath = Path.Combine(new string[] { AppDomain.CurrentDomain.BaseDirectory, "..", "..", "..", "TestXmlFiles" });

            foreach (Type type in types)
            {
                string xmlPath = Path.Combine(filePath, type.Name + ".xml");
                var    deser   = new CXmlDeserializer();
                object foo     = null;
                try
                {
                    foo = deser.Deserialize(xmlPath, Activator.CreateInstance(type));
                }
                catch (Exception e)
                {
                    Assert.Fail("Exception with " + type.Name + ": {0}", new object[] { e.Message });
                }
                Assert.IsInstanceOfType(foo, type, "Wrong type with " + type.Name);
                var    ser    = new CXmlSerializer(type == typeof(CConfig.SConfig));
                string newXml = ser.Serialize(foo, type == typeof(Dictionary <string, string>) ? "resources" : null);
                // Typename will be uppercase but input is lowercase
                newXml = newXml.Replace("<String", "<string").Replace("</String", "</string");
                string oldXml = File.ReadAllText(xmlPath);
                Assert.AreEqual(oldXml, newXml, "Error with " + type.Name);
            }
        }
Esempio n. 4
0
        public void TestArrayEmbedded()
        {
            var       xml = new CXmlDeserializer();
            var       ser = new CXmlSerializer();
            SArrayEmb foo = xml.DeserializeString <SArrayEmb>(_XmlListEmb);

            Assert.AreEqual(foo.Ints.Length, 1, "Deserialization failed");
            Assert.AreEqual(foo.Ints[0].I, 1, "Deserialization failed");
            string res = ser.Serialize(foo);

            Assert.AreEqual(_XmlListEmb, res, "Serialization failed");
            foo = xml.DeserializeString <SArrayEmb>(_XmlListEmb2);
            Assert.AreEqual(foo.Ints.Length, 2, "Deserialization failed");
            Assert.AreEqual(foo.Ints[1].I, 2, "Deserialization failed");
            res = ser.Serialize(foo);
            Assert.AreEqual(_XmlListEmb2, res, "Serialization failed");
            foo = xml.DeserializeString <SArrayEmb>(_XmlListEmb3);
            Assert.AreEqual(foo.Ints.Length, 0, "Deserialization failed");
            res = ser.Serialize(foo);
            Assert.AreEqual(_XmlListEmb3, res, "Serialization failed");
            ser      = new CXmlSerializer(true);
            foo.Ints = new SEntry[0];
            res      = ser.Serialize(foo);
            Assert.AreEqual(_XmlListEmb4, res, "Serialization failed");
            _AssertFail <SArrayEmb, CXmlException>(_Empty);
        }
Esempio n. 5
0
        public void SaveProfile()
        {
            if (String.IsNullOrEmpty(FilePath))
            {
                string filename = string.Empty;
                // ReSharper disable LoopCanBeConvertedToQuery
                foreach (char chr in PlayerName)
                // ReSharper restore LoopCanBeConvertedToQuery
                {
                    if (char.IsLetter(chr))
                    {
                        filename += chr.ToString();
                    }
                }

                if (filename == "")
                {
                    filename = "1";
                }

                FilePath = CHelper.GetUniqueFileName(Path.Combine(CBase.Settings.GetDataPath(), CBase.Settings.GetFolderProfiles()), filename + ".xml");
            }

            var xml = new CXmlSerializer();

            xml.Serialize(FilePath, this);
        }
Esempio n. 6
0
        private bool _ConvertProfile(ref Exception e)
        {
            var xml = new CXmlDeserializer();
            var ser = new CXmlSerializer();

            try
            {
                var    old    = xml.Deserialize <SOldXmlProfile>(FilePath);
                string newXml = ser.Serialize(old.Info);
                xml.DeserializeString(newXml, this);
                if (ID == null)
                {
                    ID = Guid.NewGuid();
                }
                ser.Serialize(FilePath, this);
            }
            catch (Exception e2)
            {
                if (!(e2 is CXmlException))
                {
                    e = e2;
                }
                return(false);
            }
            return(true);
        }
Esempio n. 7
0
        private static T _AssertSerDeserMatch <T>(string xmlString) where T : new()
        {
            var    deserializer = new CXmlDeserializer();
            var    serializer   = new CXmlSerializer();
            T      foo          = deserializer.DeserializeString <T>(xmlString);
            string xmlNew       = serializer.Serialize(foo);

            Assert.AreEqual(xmlString, xmlNew);
            return(foo);
        }
Esempio n. 8
0
        public virtual void SaveTheme()
        {
            if (string.IsNullOrEmpty(ThemePath))
            {
                return;
            }
            _ReadThemeSubElements();

            try
            {
                CXmlSerializer serializer = new CXmlSerializer();
                serializer.Serialize(Path.Combine(ThemePath, ThemeName + ".xml"), Theme);
            }
            catch (Exception e)
            {
                CLog.Error("Error while saving theme-file: " + ThemeName + " " + e.Message, true);
            }
        }
Esempio n. 9
0
        public void TestRealFiles([Values(typeof(SThemeCover), typeof(CConfig.SConfig), /*typeof(SThemeScreen),*/ typeof(SDefaultFonts), typeof(SSkin), typeof(STheme), typeof(Dictionary <string, string>))] Type type)
        {
            string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..", "..", "VocaluxeLib", "XML", "TestFiles");

            string xmlPath = Path.Combine(filePath, type.Name + ".xml");
            var    deser   = new CXmlDeserializer();

            object foo = deser.Deserialize(xmlPath, Activator.CreateInstance(type));

            Assert.IsInstanceOf(type, foo, "Wrong type with " + type.Name);
            var    ser    = new CXmlSerializer(type == typeof(CConfig.SConfig));
            string newXml = ser.Serialize(foo, type == typeof(Dictionary <string, string>) ? "resources" : null);

            // Typename will be uppercase but input is lowercase
            newXml = newXml.Replace("<String", "<string").Replace("</String", "</string");
            string oldXml = File.ReadAllText(xmlPath);

            Assert.AreEqual(oldXml, newXml, "Recontructed XML has differences.");
        }
Esempio n. 10
0
        public void TestExisting()
        {
            var foo = new SIgnore {
                I = 1
            };
            var     xml = new CXmlDeserializer();
            var     ser = new CXmlSerializer();
            SIgnore bar = xml.DeserializeString(_XmlIgnore, foo);

            Assert.AreEqual(1, bar.I);
            Assert.AreEqual(_XmlIgnore, ser.Serialize(bar));

            var foo2 = new CIgnore {
                I = 1
            };
            CIgnore bar2 = xml.DeserializeString(_XmlIgnore, foo2);

            Assert.AreEqual(1, bar2.I);
            Assert.AreEqual(foo2.J, bar2.J, "Original classes should be modified by the deserialization");
            Assert.AreEqual(_XmlIgnore, ser.Serialize(bar2));
        }
Esempio n. 11
0
        public void TestArray()
        {
            var    xml = new CXmlDeserializer();
            var    ser = new CXmlSerializer();
            SArray foo = xml.DeserializeString <SArray>(_XmlList[0]);

            Assert.AreEqual(foo.Ints.Length, 2, "Deserialization failed");
            Assert.AreEqual(foo.Ints[0].I, 1, "Deserialization failed");
            Assert.AreEqual(foo.Ints[1].I, 1, "Deserialization failed");
            string res = ser.Serialize(foo);

            Assert.AreEqual(_XmlList[0], res, "Serialization failed");
            foo = xml.DeserializeString <SArray>(_XmlList[1]);
            Assert.AreEqual(foo.Ints.Length, 0, "Deserialization2 failed");
            res = ser.Serialize(foo);
            Assert.AreEqual(_XmlList[2], res, "Serialization2 failed");
            foo = xml.DeserializeString <SArray>(_XmlList[2]);
            Assert.AreEqual(foo.Ints.Length, 0, "Deserialization2 failed");
            res = ser.Serialize(foo);
            Assert.AreEqual(_XmlList[2], res, "Serialization2 failed");
            _AssertFail <SArray, CXmlException>(_Empty);
        }
Esempio n. 12
0
        public void TestList()
        {
            var   xml = new CXmlDeserializer();
            var   ser = new CXmlSerializer();
            SList foo = xml.DeserializeString <SList>(_XmlList[0]);

            Assert.AreEqual(foo.Ints.Count, 2, "Deserialization failed");
            Assert.AreEqual(foo.Ints[0].I, 1, "Deserialization failed");
            Assert.AreEqual(foo.Ints[1].I, 1, "Deserialization failed");
            string res = ser.Serialize(foo);

            Assert.AreEqual(_XmlList[0], res, "Serialization failed");
            foo = xml.DeserializeString <SList>(_XmlList[1]);
            Assert.AreEqual(foo.Ints.Count, 0, "Deserialization2 failed");
            res = ser.Serialize(foo);
            Assert.AreEqual(_XmlList[2], res, "Serialization2 failed");
            foo = xml.DeserializeString <SList>(_XmlList[2]);
            Assert.AreEqual(foo.Ints.Count, 0, "Deserialization2 failed");
            _AssertSerDeserMatch <SList>(_XmlList[2]);
            res = ser.Serialize(foo);
            Assert.AreEqual(_XmlList[2], res, "Serialization2 failed");
            _AssertFail <SList, CXmlException>(_Empty);
        }