Cars.XMLSearcher.Program.Main C# (CSharp) Метод

Main() статический приватный Метод

static private Main ( ) : void
Результат void
        static void Main()
        {
            // This is quite a mess. It is not working properly.
            // It was too hard for me to solve this problem.
            // :(

            var db = new CarsDbContext();
            
            var xmlQueries = XElement.Load("../../../../QueriesData/queries.xml").Elements();
            var result = new XElement("search-results");

            foreach (var xmlQuery in xmlQueries)
            {
                var queryInCars = db.Cars.AsQueryable();

                var queryNodes = xmlQuery.Nodes();
                foreach (XElement node in queryNodes)
                {
                    Console.WriteLine(node.Name);
                    if (node.Name == "OrderBy")
                    {
                        string idValue = node.Value;
                        queryInCars = queryInCars.OrderBy(c => c.Id);
                    }

                    if (node.Name == "WhereClauses")
                    {
                        var allWhereClauses = node.Elements();
                        foreach (var whereClauseNode in allWhereClauses)
                        {
                            string PropertyName = whereClauseNode.Attribute("PropertyName").Value;
                            string CompareBy = whereClauseNode.Attribute("Type").Value;

                            if (PropertyName == "Year")
                            {
                                if (CompareBy == "GreaterThan")
                                {
                                    queryInCars.Where(c => c.Year > int.Parse(whereClauseNode.Value));
                                }
                                else if (CompareBy == "Equals")
                                {
                                    queryInCars.Where(c => c.Year == int.Parse(whereClauseNode.Value));
                                }
                            }
                            else if (PropertyName == "City")
                            {
                                if (CompareBy == "Equals")
                                {
                                    queryInCars.Where(c => c.Dealer.Cities.FirstOrDefault().Name == whereClauseNode.Value);
                                }
                            }
                        }
                    }
                }
                var resultSet = queryInCars
                .Select(c => new
                {
                Model = c.Model,
                TransmisionType = c.TransmisionType,
                Year = c.Year,
                Price = c.Price
                }).ToList();

                var xmlResultSet = new XElement("result-set");

                foreach (var carInResult in resultSet)
                {
                    var xmlReview = new XElement("Car");
                    xmlReview.Add(new XElement("Model", carInResult.Model));
                    xmlReview.Add(new XElement("TransmisionType", carInResult.TransmisionType));
                    xmlReview.Add(new XElement("Year", carInResult.Year));
                    xmlReview.Add(new XElement("Price", carInResult.Price));

                    xmlResultSet.Add(xmlReview);
                }

                result.Add(xmlResultSet);
            }

            result.Save("../../../../reviews-search-results.xml");
        }
    }
Program