/// <summary>
        /// Converts string to url-address
        /// </summary>
        /// <param name="urlAddressString">Url-address string</param>
        /// <returns>URLAddress made from specified string</returns>
        public static URLAddress ToURLAddress(this string urlAddressString)
        {
            Uri        uri        = new Uri(urlAddressString);
            URLAddress urlAddress = new URLAddress(uri.Host, GetSegments(uri.Segments), GetParameters(uri.Query));

            return(urlAddress);
        }
        /// <summary>
        /// Creates xml-element for url-address
        /// </summary>
        /// <param name="url">Url-address to be converted to xml-element</param>
        /// <returns>Xml-element urlAddress with specified structure</returns>
        static private XElement CreateUrlAddressElement(URLAddress url)
        {
            XElement urlAddress = new XElement("urlAddress");

            urlAddress.Add(CreateHostElement(url.Host));
            if (url.Segments != null)
            {
                urlAddress.Add(CreateUriElement(url.Segments));
            }
            if (url.Parameters != null)
            {
                urlAddress.Add(CreateParametresElement(url.Parameters));
            }

            return(urlAddress);
        }
예제 #3
0
        /// <summary>
        /// Writes xml-document with sequence of url-addresses to file
        /// </summary>
        /// <param name="urlAddressesStrings">Sequence of url-addresses to be added to xml-document</param>
        /// <param name="writePath">Path of file to save xml-document</param>
        public static void WriteXDocumentWithUrlAddresses(IEnumerable <string> urlAddressesStrings, string writePath)
        {
            logger = LogManager.GetCurrentClassLogger();

            if (urlAddressesStrings.Count() == 0)
            {
                logger.Info("No url-addresses to create xml-document.");
                return;
            }

            List <URLAddress> urlAddresses = new List <URLAddress>();

            foreach (var url in urlAddressesStrings)
            {
                try
                {
                    URLAddress urlAddress = url.ToURLAddress();
                    urlAddresses.Add(urlAddress);
                }
                catch
                {
                    logger.Error("String: " + url + " doesn't match url-address pattern");
                }
            }

            if (urlAddresses.Count == 0)
            {
                logger.Info("No matches of url-address pattern found in strings sequence.");
                return;
            }

            XDocument document = URLAddresstoXML.GetXmlUrlAddresses(urlAddresses);

            if (writePath == null)
            {
                logger.Error("Specified file path is null.");
                throw new ArgumentNullException();
            }
            document.Save(writePath);
        }
예제 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="path"></param>
        /// <returns></returns>
        public static XDocument ReadURLAddressesFromFile(string path)
        {
            logger = LogManager.GetCurrentClassLogger();
            if (path == null)
            {
                logger.Error("Specified file path is null.");
                throw new ArgumentNullException();
            }

            IEnumerable <string> lines = File.ReadLines(path);

            if (lines.Count() == 0)
            {
                logger.Info("File is empty.");
                return(null);
            }

            List <URLAddress> urlAddresses = new List <URLAddress>();

            foreach (var line in lines)
            {
                try
                {
                    URLAddress urlAddress = line.ToURLAddress();
                    urlAddresses.Add(urlAddress);
                }
                catch
                {
                    logger.Error("Line: " + line + " doesn't match url-address pattern");
                }
            }

            if (urlAddresses.Count == 0)
            {
                logger.Info("No matches of url-address pattern found in the file.");
                return(null);
            }

            return(URLAddresstoXML.GetXmlUrlAddresses(urlAddresses));
        }