Beispiel #1
0
        public List <ProgLanguage> Parse(ProgLanguage searchParams)
        {
            List <ProgLanguage> languages = new List <ProgLanguage>();
            var doc         = XDocument.Load(@"C:\Users\Vlad_2\repos\C#\XMLConverter\XMLConverter\ProgLanguages.xml");
            var queryResult = from obj in doc.Descendants("ProgLanguage")
                              where
                              (
                (obj.Attribute("LanguageName").Value == searchParams.LanguageName || searchParams.LanguageName == "") &&
                (obj.Attribute("Authors").Value == searchParams.Authors || searchParams.Authors == "") &&
                (obj.Attribute("ReleaseYear").Value == searchParams.ReleaseYear || searchParams.ReleaseYear == "") &&
                (obj.Attribute("TypeOfLanguage").Value == searchParams.TypeOfLanguage || searchParams.TypeOfLanguage == "") &&
                (obj.Attribute("AbstractionLevel").Value == searchParams.AbstractionLevel || searchParams.AbstractionLevel == "") &&
                (obj.Attribute("CommonlyUsedFor").Value == searchParams.CommonlyUsedFor || searchParams.CommonlyUsedFor == "")
                              )
                              select new ProgLanguage
                              (
                obj.Attribute("LanguageName").Value,
                obj.Attribute("ReleaseYear").Value,
                obj.Attribute("Authors").Value,
                obj.Attribute("TypeOfLanguage").Value,
                obj.Attribute("AbstractionLevel").Value,
                obj.Attribute("CommonlyUsedFor").Value
                              );

            foreach (var obj in queryResult)
            {
                if (!obj.HasSomeFieldsEmpty())
                {
                    languages.Add(obj);
                }
            }
            return(languages);
        }
Beispiel #2
0
        public List <ProgLanguage> Parse(ProgLanguage searchParams)
        {
            List <ProgLanguage> languages = new List <ProgLanguage>();
            var xmlReader = new XmlTextReader(@"C:\Users\Vlad_2\repos\C#\XMLConverter\XMLConverter\ProgLanguages.xml");

            while (xmlReader.Read())
            {
                ProgLanguage languageObj = new ProgLanguage();
                if (xmlReader.HasAttributes)
                {
                    while (xmlReader.MoveToNextAttribute())
                    {
                        if (xmlReader.Name == "LanguageName" && (searchParams.LanguageName == xmlReader.Value || searchParams.LanguageName == ""))
                        {
                            languageObj.LanguageName = xmlReader.Value;
                            Console.WriteLine("Added lang type");
                            xmlReader.MoveToNextAttribute();
                        }
                        if (xmlReader.Name == "ReleaseYear" && (searchParams.ReleaseYear == xmlReader.Value || searchParams.ReleaseYear == ""))
                        {
                            languageObj.ReleaseYear = xmlReader.Value;
                            Console.WriteLine("Added release year");
                            xmlReader.MoveToNextAttribute();
                        }
                        if (xmlReader.Name == "Authors" && (searchParams.Authors == xmlReader.Value || searchParams.Authors == ""))
                        {
                            languageObj.Authors = xmlReader.Value;
                            Console.WriteLine("Added authors");
                            xmlReader.MoveToNextAttribute();
                        }
                        if (xmlReader.Name == "TypeOfLanguage" && (searchParams.TypeOfLanguage == xmlReader.Value || searchParams.TypeOfLanguage == ""))
                        {
                            languageObj.TypeOfLanguage = xmlReader.Value;
                            Console.WriteLine("Added type");
                            xmlReader.MoveToNextAttribute();
                        }
                        if (xmlReader.Name == "AbstractionLevel" && (searchParams.AbstractionLevel == xmlReader.Value || searchParams.AbstractionLevel == ""))
                        {
                            languageObj.AbstractionLevel = xmlReader.Value;
                            Console.WriteLine("Added level");
                            xmlReader.MoveToNextAttribute();
                        }
                        if (xmlReader.Name == "CommonlyUsedFor" && (searchParams.CommonlyUsedFor == xmlReader.Value || searchParams.CommonlyUsedFor == ""))
                        {
                            languageObj.CommonlyUsedFor = xmlReader.Value;
                            Console.WriteLine("Added usage");
                            xmlReader.MoveToNextAttribute();
                        }
                    }
                }
                if (!languageObj.HasSomeFieldsEmpty())
                {
                    languages.Add(languageObj);
                }
            }
            xmlReader.Close();
            return(languages);
        }
Beispiel #3
0
        public List <ProgLanguage> Parse(ProgLanguage searchParams)
        {
            List <ProgLanguage> languages = new List <ProgLanguage>();
            XmlDocument         doc       = new XmlDocument();

            doc.Load(@"C:\Users\Vlad_2\repos\C#\XMLConverter\XMLConverter\ProgLanguages.xml");

            XmlNode root  = doc.DocumentElement;
            string  query = "";

            // query construction
            query  = @"ProgLanguage[";
            query += addSearchParamToQuery("@LanguageName", searchParams.LanguageName);
            query += addSearchParamToQuery("@ReleaseYear", searchParams.ReleaseYear);

            query += addSearchParamToQuery("@Authors", searchParams.Authors);
            query += addSearchParamToQuery("@TypeOfLanguage", searchParams.TypeOfLanguage);

            query += addSearchParamToQuery("@AbstractionLevel", searchParams.AbstractionLevel);
            query += addSearchParamToQuery("@CommonlyUsedFor", searchParams.CommonlyUsedFor);

            query += "]";

            Console.WriteLine(query);
            XmlNodeList childNodes = root.SelectNodes(query);

            foreach (XmlNode node in childNodes)
            {
                ProgLanguage pl = new ProgLanguage(
                    node.Attributes.GetNamedItem("LanguageName").Value,
                    node.Attributes.GetNamedItem("ReleaseYear").Value,
                    node.Attributes.GetNamedItem("Authors").Value,
                    node.Attributes.GetNamedItem("TypeOfLanguage").Value,
                    node.Attributes.GetNamedItem("AbstractionLevel").Value,
                    node.Attributes.GetNamedItem("CommonlyUsedFor").Value
                    );

                languages.Add(pl);
            }
            return(languages);
        }
Beispiel #4
0
        private void Search()
        {
            ResultRichTextBox.Text = "";
            ProgLanguage searchParams = new ProgLanguage();

            try
            {
                if (LanguageNameCheckBox.Checked && LanguageNameComboBox.SelectedItem != null)
                {
                    searchParams.LanguageName = LanguageNameComboBox.SelectedItem.ToString();
                }

                if (AuthorsCheckBox.Checked && AuthorsComboBox.SelectedItem != null)
                {
                    searchParams.Authors = AuthorsComboBox.SelectedItem.ToString();
                }

                if (ReleaseYearCheckBox.Checked && ReleaseYearComboBox.SelectedItem != null)
                {
                    searchParams.ReleaseYear = ReleaseYearComboBox.SelectedItem.ToString();
                }

                if (AbstractionLevelCheckBox.Checked && AbstractionLevelComboBox.SelectedItem != null)
                {
                    searchParams.AbstractionLevel = AbstractionLevelComboBox.SelectedItem.ToString();
                }

                if (CommonUsageCheckBox.Checked && CommonUsageComboBox.SelectedItem != null)
                {
                    searchParams.CommonlyUsedFor = CommonUsageComboBox.SelectedItem.ToString();
                }

                if (LanguageTypeCheckBox.Checked && LanguageTypeComboBox.SelectedItem != null)
                {
                    searchParams.TypeOfLanguage = LanguageTypeComboBox.SelectedItem.ToString();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Whoops! You gotta choose something before you go.");
            }

            IStrategyParser parserStrategy = new DOMXMLStrategy();

            if (XMLDOMRadioButton.Checked)
            {
                parserStrategy = new DOMXMLStrategy();
            }
            if (LINQRadioButton.Checked)
            {
                parserStrategy = new XMLtoLINQStrategy();
            }
            if (SAXRadioButton.Checked)
            {
                parserStrategy = new SAXStrategy();
            }

            List <ProgLanguage> result = parserStrategy.Parse(searchParams);

            Console.WriteLine(result.Count);
            foreach (ProgLanguage language in result)
            {
                ResultRichTextBox.Text += "Language name: " + language.LanguageName + "\n";
                ResultRichTextBox.Text += "Language type: " + language.TypeOfLanguage + "\n";
                ResultRichTextBox.Text += "Authors :" + language.Authors + "\n";
                ResultRichTextBox.Text += "Abstraction level: " + language.AbstractionLevel + "\n";
                ResultRichTextBox.Text += "Release year: " + language.ReleaseYear + "\n";
                ResultRichTextBox.Text += "Common usage: " + language.CommonlyUsedFor + "\n";
                ResultRichTextBox.Text += "\n" + "__________________________________" + "\n" + "\n";
            }
        }