コード例 #1
0
 /// <summary>
 /// Constructor with tree params host interfaces
 /// </summary>
 /// <param name="url"></param>
 /// <param name="check"></param>
 /// <param name="split"></param>
 public TxtToElement(string url, ICheck check, ISplitString split)
 {
     this.url = url;
     if (CheckOnUrl(check))
     {
         SplitOnElementsAndParams(check, split);
     }
     else
     {
         elements   = null;
         parameters = null;
     }
 }
コード例 #2
0
 /// <summary>
 /// Split received  string on elements and params
 /// </summary>
 /// <param name="check"></param>
 /// <param name="split"></param>
 public void SplitOnElementsAndParams(ICheck check, ISplitString split)
 {
     elements = new List <string>();
     foreach (var str in split.SplitBySlesh(url))
     {
         if (check.CheckUrlOnParam(str))
         {
             parameters = new Dictionary <string, string>();
             string[] keyValue = split.SplitOnParameters(str);
             for (int i = 0; i < keyValue.Length - 1; i += 2)
             {
                 parameters.Add(keyValue[i], keyValue[i + 1]);
             }
         }
         else
         {
             elements.Add(str);
         }
     }
 }
コード例 #3
0
        /// <summary>
        /// Method Reads from text file and Writtes to Xml file
        /// </summary>
        /// <param name="check"></param>
        /// <param name="split"></param>
        public void Go(ICheck check, ISplitString split)
        {
            if (check == null)
            {
                check = new Check();
            }
            if (split == null)
            {
                split = new SplitString();
            }

            using (StreamReader sr = new StreamReader(textFile))
            {
                string line;

                XDocument xDoc;
                XElement  root;
                if (!File.Exists(xmlFile))
                {
                    File.Delete(xmlFile);
                }


                xDoc = new XDocument();
                root = new XElement("urlAddresses");

                while ((line = sr.ReadLine()) != null)
                {
                    ITextToElement textToElement = new TxtToElement(line, check, split);
                    elements   = textToElement.GetElementsList();
                    parameters = textToElement.GetParametresDictionary();
                    if (elements == null)
                    {
                        continue;
                    }

                    XElement address = new XElement("urlAdress");
                    XElement host    = new XElement("host", new XAttribute("name", elements[0]));

                    elements.RemoveAt(0);
                    XElement uri = new XElement("uri");
                    address.Add(host, uri);

                    foreach (var elem in elements)
                    {
                        if (elem != string.Empty)
                        {
                            XElement segment = new XElement("segment", elem);
                            uri.Add(segment);
                        }
                    }

                    if (parameters != null)
                    {
                        XElement parametersElement = new XElement("parameters");
                        address.Add(parametersElement);

                        foreach (var param in parameters)
                        {
                            XElement parametr = new XElement("parametr", new XAttribute("value", param.Value), new XAttribute("key", param.Key));
                            parametersElement.Add(parametr);
                        }
                    }

                    root.Add(address);
                }
                xDoc.Add(root);
                xDoc.Save("urlAddresses.xml");
            }
        }