public List <Gemstones> Search(Gemstones gemstone)
        {
            var doc = XDocument.Load(@"H:\visual_studio_c#\XmlLab3\XmlLab3\Gemstones.xml");
            List <Gemstones> OurResult = new List <Gemstones>();
            var result = from obj in doc.Descendants("Gemstone")
                         where
                         ((obj.Attribute("Type").Value.Equals(gemstone.Type) || gemstone.Type.Equals(String.Empty)) &&
                          (obj.Attribute("Category").Value.Equals(gemstone.Category) || gemstone.Category.Equals(String.Empty)) &&
                          (obj.Attribute("Hardness").Value.Equals(gemstone.Hardness) || gemstone.Hardness.Equals(String.Empty)) &&
                          (obj.Attribute("Density").Value.Equals(gemstone.Density) || gemstone.Density.Equals(String.Empty)) &&
                          (obj.Attribute("Mineral").Value.Equals(gemstone.Mineral) || gemstone.Mineral.Equals(String.Empty)) &&
                          (obj.Attribute("Color").Value.Equals(gemstone.Color) || gemstone.Color.Equals(String.Empty)))
                         select new
            {
                type     = (string)obj.Attribute("Type"),
                category = (string)obj.Attribute("Category"),
                hardness = (string)obj.Attribute("Hardness"),
                density  = (string)obj.Attribute("Density"),
                mineral  = (string)obj.Attribute("Mineral"),
                color    = (string)obj.Attribute("Color")
            };

            foreach (var res in result)
            {
                Gemstones ourGemstone = new Gemstones();
                ourGemstone.Type     = res.type;
                ourGemstone.Category = res.category;
                ourGemstone.Density  = res.density;
                ourGemstone.Hardness = res.hardness;
                ourGemstone.Mineral  = res.mineral;
                ourGemstone.Color    = res.color;
                OurResult.Add(ourGemstone);
            }
            return(OurResult);
        }
        public List <Gemstones> Search(Gemstones gemstones)
        {
            List <Gemstones> OurResult = new List <Gemstones>();
            XmlDocument      doc       = new XmlDocument();

            doc.Load(@"H:\visual_studio_c#\XmlLab3\XmlLab3\Gemstones.xml");
            XmlNode node = doc.DocumentElement;

            foreach (XmlNode nod in node.ChildNodes)
            {
                string Type     = "";
                string Category = "";
                string Density  = "";
                string Mineral  = "";
                string Hardness = "";
                string Color    = "";
                foreach (XmlAttribute attribute in nod.Attributes)
                {
                    if (attribute.Name.Equals("Type") && (attribute.Value.Equals(gemstones.Type) || gemstones.Type.Equals(String.Empty)))
                    {
                        Type = attribute.Value;
                    }
                    if (attribute.Name.Equals("Category") && (attribute.Value.Equals(gemstones.Category) || gemstones.Category.Equals(String.Empty)))
                    {
                        Category = attribute.Value;
                    }
                    if (attribute.Name.Equals("Density") && (attribute.Value.Equals(gemstones.Density) || gemstones.Density.Equals(String.Empty)))
                    {
                        Density = attribute.Value;
                    }
                    if (attribute.Name.Equals("Mineral") && (attribute.Value.Equals(gemstones.Mineral) || gemstones.Mineral.Equals(String.Empty)))
                    {
                        Mineral = attribute.Value;
                    }
                    if (attribute.Name.Equals("Hardness") && (attribute.Value.Equals(gemstones.Hardness) || gemstones.Hardness.Equals(String.Empty)))
                    {
                        Hardness = attribute.Value;
                    }
                    if (attribute.Name.Equals("Color") && (attribute.Value.Equals(gemstones.Color) || gemstones.Color.Equals(String.Empty)))
                    {
                        Color = attribute.Value;
                    }
                }
                if (Type != "" && Category != "" && Density != "" && Mineral != "" && Hardness != "" && Color != "")
                {
                    Gemstones ourGemstone = new Gemstones();
                    ourGemstone.Type     = Type;
                    ourGemstone.Category = Category;
                    ourGemstone.Density  = Density;
                    ourGemstone.Mineral  = Mineral;
                    ourGemstone.Hardness = Hardness;
                    ourGemstone.Color    = Color;
                    OurResult.Add(ourGemstone);
                }
            }
            return(OurResult);
        }
Beispiel #3
0
        private void Search()
        {
            try
            {
                FoundRichTextBox.Text = "";

                Gemstones gemstone = new Gemstones();

                if (TypeCheckBox.Checked)
                {
                    gemstone.Type = TypeComboBox.SelectedItem.ToString();
                }

                if (CategoryCheckBox.Checked)
                {
                    gemstone.Category = CategoryComboBox.SelectedItem.ToString();
                }

                if (HardnessCheckBox.Checked)
                {
                    gemstone.Hardness = HardnessComboBox.SelectedItem.ToString();
                }

                if (DensityCheckBox.Checked)
                {
                    gemstone.Density = DensityComboBox.SelectedItem.ToString();
                }

                if (ColorCheckBox.Checked)
                {
                    gemstone.Color = ColorComboBox.SelectedItem.ToString();
                }

                if (MineralCheckBox.Checked)
                {
                    gemstone.Mineral = MineralComboBox.SelectedItem.ToString();
                }

                ISearchAlgorithmStrategy myStrategy = new DOMSearchAlgorithmStrategy();
                if (DOMRadioButton.Checked)
                {
                    myStrategy = new DOMSearchAlgorithmStrategy();
                }

                if (SAXRadioButton.Checked)
                {
                    myStrategy = new SAXSearchAlgorithmStrategy();
                }

                if (LinqToXMLRadioButton.Checked)
                {
                    myStrategy = new LinqToXMLSearchAlgorithmStrategy();
                }
                List <Gemstones> result = SearchWithStrategy(myStrategy, gemstone);
                foreach (Gemstones res in result)
                {
                    FoundRichTextBox.Text += "Type: " + res.Type + '\n';
                    FoundRichTextBox.Text += "Category: " + res.Category + '\n';
                    FoundRichTextBox.Text += "Density: " + res.Density + '\n';
                    FoundRichTextBox.Text += "Hardness: " + res.Hardness + '\n';
                    FoundRichTextBox.Text += "Mineral: " + res.Mineral + '\n';
                    FoundRichTextBox.Text += "Color: " + res.Color + '\n';

                    FoundRichTextBox.Text += "\n\n";
                }
            }
            catch (NullReferenceException)
            {
                MessageBox.Show("Error! Enter data!");
            }
        }
Beispiel #4
0
        public List <Gemstones> Search(Gemstones gemstone)
        {
            List <Gemstones> OurResult = new List <Gemstones>();
            var xmlReader = new XmlTextReader(@"H:\visual_studio_c#\XmlLab3\XmlLab3\Gemstones.xml");

            while (xmlReader.Read())
            {
                if (xmlReader.HasAttributes)
                {
                    while (xmlReader.MoveToNextAttribute())
                    {
                        string Type     = "";
                        string Category = "";
                        string Density  = "";
                        string Mineral  = "";
                        string Hardness = "";
                        string Color    = "";
                        if (xmlReader.Name.Equals("Type") && (xmlReader.Value.Equals(gemstone.Type) || gemstone.Type.Equals(String.Empty)))
                        {
                            Type = xmlReader.Value;
                            xmlReader.MoveToNextAttribute();

                            if (xmlReader.Name.Equals("Category") && (xmlReader.Value.Equals(gemstone.Category) || gemstone.Category.Equals(String.Empty)))
                            {
                                Category = xmlReader.Value;
                                xmlReader.MoveToNextAttribute();
                                if (xmlReader.Name.Equals("Density") && (xmlReader.Value.Equals(gemstone.Density) || gemstone.Density.Equals(String.Empty)))
                                {
                                    Density = xmlReader.Value;
                                    xmlReader.MoveToNextAttribute();
                                    if (xmlReader.Name.Equals("Mineral") && (xmlReader.Value.Equals(gemstone.Mineral) || gemstone.Mineral.Equals(String.Empty)))
                                    {
                                        Mineral = xmlReader.Value;
                                        xmlReader.MoveToNextAttribute();
                                        if (xmlReader.Name.Equals("Hardness") && (xmlReader.Value.Equals(gemstone.Hardness) || gemstone.Hardness.Equals(String.Empty)))
                                        {
                                            Hardness = xmlReader.Value;
                                            xmlReader.MoveToNextAttribute();
                                            if (xmlReader.Name.Equals("Color") && (xmlReader.Value.Equals(gemstone.Color) || gemstone.Color.Equals(String.Empty)))
                                            {
                                                Color = xmlReader.Value;
                                                xmlReader.MoveToNextAttribute();
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        if (Type != "" && Category != "" && Density != "" && Mineral != "" && Hardness != "" && Color != "")
                        {
                            Gemstones ourGemstone = new Gemstones();
                            ourGemstone.Type     = Type;
                            ourGemstone.Category = Category;
                            ourGemstone.Density  = Density;
                            ourGemstone.Mineral  = Mineral;
                            ourGemstone.Hardness = Hardness;
                            ourGemstone.Color    = Color;
                            OurResult.Add(ourGemstone);
                        }
                    }
                }
            }
            xmlReader.Close();
            return(OurResult);
        }
Beispiel #5
0
 private List <Gemstones> SearchWithStrategy(ISearchAlgorithmStrategy myStrategy, Gemstones gemstone)
 {
     return(myStrategy.Search(gemstone));
 }