예제 #1
0
        /// <summary>
        /// Reads template data from given XML
        /// </summary>
        /// <param name="xmlAccess">object providing access to an XML file</param>
        public bool ReadFromXML(IXMLAccess xmlAccess)
        {
            Parts.Clear();

            try
            {
                XElement xmlData = xmlAccess.ReadXMLData();
                Name        = xmlData.Attribute(Constants.TemplateXML_Name).Value;
                FilePattern = xmlData.Attribute(Constants.TemplateXML_FilePattern)?.Value ?? "";

                XElement xmlDataConverters = xmlData.Element(Constants.TemplateXML_Converters);
                if (xmlDataConverters != null)
                {
                    foreach (XElement elementConverter in xmlDataConverters.Elements())
                    {
                        ParseConverter(elementConverter);
                    }
                }

                XElement xmlDataTemplate = xmlData.Element(Constants.TemplateXML_Template);
                foreach (XElement element in xmlDataTemplate.Elements())
                {
                    ParsePart(element, Parts);
                }

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
예제 #2
0
        /// <summary>
        /// Saves the template to XML
        /// </summary>
        /// <param name="xmlAccess">object providing access to an XML file</param>
        /// <returns>true, if saving successful</returns>
        public bool SaveToXML(IXMLAccess xmlAccess)
        {
            XElement xmlData = new XElement(Constants.TemplateXML_Root);

            xmlData.Add(new XAttribute(Constants.TemplateXML_Name, Name));
            xmlData.Add(new XAttribute(Constants.TemplateXML_FilePattern, FilePattern));

            xmlData.Add(CreateXML_Template());
            xmlData.Add(CreateXML_Converters());

            try
            {
                xmlAccess.WriteXMLData(xmlData);
                return(true);
            }
            catch
            {
                return(false);
            }
        }