Exemplo n.º 1
0
        private void ValidateData(ILoaderData dataProvider, IXMLConverter xmlTransformer)
        {
            if (dataProvider == null)
            {
                throw new ArgumentNullException("DataProvider must be not null");
            }

            if (xmlTransformer == null)
            {
                throw new ArgumentNullException("XMLTransformer must be not null");
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Exports the received data to xml format
        /// </summary>
        /// <param name="loaderData">Loader data</param>
        /// <param name="xmlConverter">Converter data to xml</param>
        /// <returns>xml document</returns>
        public XmlDocument CreateXmlWithData(ILoaderData loaderData, IXMLConverter xmlConverter)
        {
            ValidateData(loaderData, xmlConverter);

            var xmlDocument    = new XmlDocument();
            var xmlDeclaration = xmlDocument.CreateXmlDeclaration("1.0", "utf-8", null);

            xmlDocument.AppendChild(xmlDeclaration);

            var xmlRootElement = xmlDocument.CreateElement("urlAddresses");

            List <string> data = loaderData.LoadData();
            int           i    = 0;

            foreach (var d in data)
            {
                i++;
                string xmlString;
                try
                {
                    xmlString = xmlConverter.ConvertToXml(d);
                }
                catch (Exception)
                {
                    Logger?.Info($"Data on the {i} iteration of the cycle is not valid.");
                    continue;
                }

                var xmlDocumentFragment = xmlDocument.CreateDocumentFragment();
                xmlDocumentFragment.InnerXml = xmlString;

                xmlRootElement.AppendChild(xmlDocumentFragment);
            }

            xmlDocument.AppendChild(xmlRootElement);

            return(xmlDocument);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Used to Create XML Object
        /// </summary>
        /// <param name="converter">Converter which defines the object , its attributes etc.</param>
        /// <returns></returns>
        public XElement CreateXmlElement(ref int currentID, IXMLConverter converter)
        {
            XElement xmlElement = converter.CreateXml(this);

            int posCounter = 0;

            if (Childrens != null)
            {
                foreach (var child in Childrens)
                {
                    currentID++;
                    posCounter++;
                    child.Id = currentID;
                    child.Position = posCounter;
                    xmlElement.Add(child.CreateXmlElement(ref currentID, converter));
                }
            }

            return xmlElement;
        }