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); }
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); }
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); }
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"; } }