static void Main()
        {
            var context      = new GeographyEntities();
            var xmlDocInput  = XDocument.Load("../../rivers-query.xml");
            var queryResults = new XElement("results");

            foreach (var queryElement in xmlDocInput.XPathSelectElements("/queries/query"))
            {
                var riversQuery   = BuildRiversQuery(context, queryElement);
                var riversElement = new XElement("rivers");
                riversElement.Add(new XAttribute("total-count", riversQuery.Count().ToString()));
                var maxResultsAttribute = queryElement.Attribute("max-results");
                if (maxResultsAttribute != null)
                {
                    int maxResults = int.Parse(maxResultsAttribute.Value);
                    riversQuery = riversQuery.Take(maxResults);
                }
                var riverNames = riversQuery.Select(r => r.RiverName).ToList();
                foreach (var riverName in riverNames)
                {
                    riversElement.Add(new XElement("river", riverName));
                }
                riversElement.Add(new XAttribute("listed-count", riversQuery.Count().ToString()));
                queryResults.Add(riversElement);
            }

            Console.WriteLine(queryResults);
        }
Ejemplo n.º 2
0
    static void Main()
    {
        var context   = new GeographyEntities();
        var countries = context.Countries
                        .OrderBy(c => c.CountryName)
                        .Select(c => new
        {
            c.CountryName,
            Monasteries = c.Monasteries
                          .OrderBy(m => m.Name)
                          .Select(m => m.Name)
        });
        var xmlRoot = new XElement("monasteries");

        foreach (var country in countries)
        {
            if (country.Monasteries.Any())
            {
                var countryXml = new XElement("country",
                                              new XAttribute("name", country.CountryName));
                foreach (var monastery in country.Monasteries)
                {
                    var monasteryXml = new XElement("monastery", monastery);
                    countryXml.Add(monasteryXml);
                }
                xmlRoot.Add(countryXml);
            }
        }
        var xmlDoc = new XDocument(xmlRoot);

        xmlDoc.Save("monasteries.xml");
        Console.WriteLine(@"Monasteries exported to Bin\Debug\monasteries.xml");
    }
Ejemplo n.º 3
0
        public static void Main(string[] args)
        {
            const string SaveJsonIn = @"..\..\..\Rivers.Json";

            var context = new GeographyEntities();
            var rivers  = context.Rivers
                          .Select(r => new
            {
                riverName   = r.RiverName,
                riverLength = r.Length,
                countries   = r.Countries
                              .Select(c => c.CountryName)
                              .OrderBy(c => c)
            })
                          .OrderByDescending(r => r.riverLength)
                          .ToList();

            var serializer     = new JavaScriptSerializer();
            var serializedJson = serializer.Serialize(rivers);

            var directory = new DirectoryInfo(SaveJsonIn);

            File.WriteAllText(SaveJsonIn, serializedJson);
            Console.WriteLine("JSON saved to {0}", directory.FullName);
            //Console.WriteLine(serializedJson);
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            var context = new GeographyEntities();

            var countriesQuery = context
                                 .Countries
                                 .Where(c => c.Monasteries.Any())
                                 .OrderBy(c => c.CountryName)
                                 .Select(c => new
            {
                countryName = c.CountryName,
                Monasteries = c.Monasteries
                              .OrderBy(m => m.Name)
                              .Select(m => m.Name)
            });

            var xmlDoc  = new XDocument();
            var xmlRoot = new XElement("monasteries");

            xmlDoc.Add(xmlRoot);

            foreach (var country in countriesQuery)
            {
                var countryXML = new XElement("country", new XAttribute("name", country.countryName));
                xmlRoot.Add(countryXML);

                foreach (var monastery in country.Monasteries)
                {
                    var monasteryXML = new XElement("monastery", monastery);
                    countryXML.Add(monasteryXML);
                }
            }

            xmlDoc.Save("monasteries.txt");
        }
Ejemplo n.º 5
0
        public static void Main(string[] args)
        {
            const string SaveJsonIn = @"..\..\..\Rivers.Json";

            var context = new GeographyEntities();
            var rivers = context.Rivers
                .Select(r => new
                {
                    riverName = r.RiverName,
                    riverLength = r.Length,
                    countries = r.Countries
                        .Select(c => c.CountryName)
                        .OrderBy(c => c)
                })
                .OrderByDescending(r => r.riverLength)
                .ToList();

            var serializer = new JavaScriptSerializer();
            var serializedJson = serializer.Serialize(rivers);

            var directory = new DirectoryInfo(SaveJsonIn);
            File.WriteAllText(SaveJsonIn, serializedJson);
            Console.WriteLine("JSON saved to {0}", directory.FullName);
            //Console.WriteLine(serializedJson);
        }
Ejemplo n.º 6
0
        static void Main()
        {
            var context = new GeographyEntities();
            var xmlDoc  = XDocument.Load(@"..\..\rivers.xml");
            //Console.WriteLine(xmlDoc);
            var riverElements = xmlDoc.Root.Elements();

            foreach (var riverElement in riverElements)  //in xmlDoc.XPathSelectElements("/rivers/river")
            {
                var riverEntity = new River();
                riverEntity.RiverName = riverElement.Element("name").Value;
                //Console.WriteLine(riverElement.Element("name").Value);
                riverEntity.Length  = int.Parse(riverElement.Element("length").Value);
                riverEntity.Outflow = riverElement.Element("outflow").Value;
                if (riverElement.Element("drainage-area") != null)
                {
                    riverEntity.DrainageArea = int.Parse(riverElement.Element("drainage-area").Value);
                }
                if (riverElement.Element("average-discharge") != null)
                {
                    riverEntity.AverageDischarge = int.Parse(riverElement.Element("average-discharge").Value);
                }

                ParseAndAddCountriesToRiver(context, riverElement, riverEntity);

                context.Rivers.Add(riverEntity);
            }

            context.SaveChanges();
        }
Ejemplo n.º 7
0
        static void Main()
        {
            var context = new GeographyEntities();
            //select all the monasteries alphabetically along with all their countries alphabetically.
            var monasteriesWithCountries = context.Countries
                                           .Where(c => c.Monasteries.Any())
                                           .OrderBy(c => c.CountryName)
                                           .Select(c => new
            {
                c.CountryName,
                Monasteries = c.Monasteries
                              .OrderBy(m => m.Name)
                              .Select(m => m.Name)
            });

            var xmlMonasteries = new XElement("monasteries");

            foreach (var country in monasteriesWithCountries)
            {
                var xmlCountry = new XElement("country");
                xmlCountry.Add(new XAttribute("name", country.CountryName));

                foreach (var monastery in country.Monasteries)
                {
                    xmlCountry.Add(new XElement("monastery", monastery));
                }

                xmlMonasteries.Add(xmlCountry);
            }

            File.WriteAllText("../../monasteries.xml", xmlMonasteries.ToString());
        }
Ejemplo n.º 8
0
        public static void Main()
        {
            var context     = new GeographyEntities();
            var riversQuery = context.Rivers
                              .OrderByDescending(r => r.Length)
                              .Select(r => new
            {
                riverName   = r.RiverName,
                riverLength = r.Length,
                countries   = r.Countries
                              .OrderBy(c => c.CountryName)
                              .Select(c => c.CountryName)
            });
            //Console.WriteLine(riversQuery);
            //foreach (var river in riversQuery)
            //{
            //    Console.WriteLine(river);
            //}

            var json = new JavaScriptSerializer().Serialize(riversQuery.ToList());

            //Console.WriteLine(json);

            File.WriteAllText(@"rivers.json", json);
        }
Ejemplo n.º 9
0
        static void Main(string[] args)
        {
            var context = new GeographyEntities();

            var rivers = context.Rivers
                         .OrderByDescending(r => r.Length)
                         .Select(r => new
            {
                riverName   = r.RiverName,
                riverLength = r.Length,
                countries   = r.Countries
                              .OrderBy(c => c.CountryName)
                              .Select(c => c.CountryName)
            });

            var jsSerializer = new JavaScriptSerializer();
            var riversJson   = jsSerializer.Serialize(rivers.ToList());

            Console.WriteLine(riversJson);
            File.WriteAllText("rivers.json", riversJson);


            //printing rivers on the console
            foreach (var r in rivers)
            {
                Console.WriteLine("River name: {0}, lenght: {1}, Countries: {2}",
                                  r.riverName, r.riverLength, String.Join(", ", r.countries));
            }
        }
        static void Main()
        {
            var context = new GeographyEntities();

            var countryMonasteries = context.Countries
                                     .OrderBy(c => c.CountryName)
                                     .Where(c => c.Monasteries.Any())
                                     .Select(c => new
            {
                c.CountryName,
                Monasteries = c.Monasteries
                              .OrderBy(m => m.Name)
                              .Select(m => m.Name)
            }).ToList();


            XElement xmlMonasteries = new XElement("monasteries");

            foreach (var country in countryMonasteries)
            {
                var xmlCountry = new XElement("country");
                xmlCountry.Add(new XAttribute("name", country.CountryName));

                foreach (var monastrery in country.Monasteries)
                {
                    xmlCountry.Add(new XElement("monastery", monastrery));
                }

                xmlMonasteries.Add(xmlCountry);
            }

            var xmlDoc = new XDocument(xmlMonasteries);

            xmlDoc.Save("../../countryMon.xml");
        }
Ejemplo n.º 11
0
        static void Main(string[] args)
        {
            var context = new GeographyEntities();

            var countries = context.Countries
                            .Where(c => c.Monasteries.Any())
                            .OrderBy(c => c.CountryName)
                            .Select(c => new
            {
                countryName   = c.CountryName,
                monasteryName = c.Monasteries.OrderBy(m => m.Name).Select(m => m.Name)
            }).ToList();

            XElement monasteriesXml = new XElement("monasteries");

            foreach (var country in countries)
            {
                XElement countryXml = new XElement("country", new XAttribute("name", country.countryName));
                foreach (var monastery in country.monasteryName)
                {
                    var monasteryXml = new XElement("monastery", monastery);
                    countryXml.Add(monasteryXml);
                }
                monasteriesXml.Add(countryXml);
            }

            //Console.WriteLine(monasteriesXml.ToString());
            monasteriesXml.Save("../../monasteries.xml ");
        }
Ejemplo n.º 12
0
        static void Main(string[] args)
        {
            var context     = new GeographyEntities();
            var riversQuery = context.Rivers.AsQueryable();

            var xmlDoc = XDocument.Load("../../rivers-query.xml");

            foreach (var queryElement in xmlDoc.XPathSelectElements("/queries/query"))
            {
                foreach (var countryElement in queryElement.XPathSelectElements("country"))
                {
                    var countryName = countryElement.Value;

                    riversQuery = riversQuery
                                  .Where(
                        r => r.Countries.Any(c => c.CountryName == countryName)
                        );
                }

                riversQuery = riversQuery.OrderBy(r => r.RiverName);
                var maxResultsAttribute = queryElement.Attribute("max-results");
                if (maxResultsAttribute != null)
                {
                    int maxResults = int.Parse(maxResultsAttribute.Value);

                    riversQuery = riversQuery.Take(maxResults);
                }

                var riverNames = riversQuery.Select(r => r.RiverName);

                Console.WriteLine(string.Join(", ", riverNames));
            }
            Console.WriteLine("END");
            Console.ReadLine();
        }
 static void Main(string[] args)
 {
     var context = new GeographyEntities();
     foreach (var counntry in context.Continents)
     {
         System.Console.WriteLine(counntry.ContinentName);
     }
 }
Ejemplo n.º 14
0
        static void Main()
        {
            var context = new GeographyEntities();
            // var rivers = context.Rivers.Count(); // check DB

            // Load the XML from file and test print
            var xmlDoc = XDocument.Load(@"..\..\rivers.xml");
            //System.Console.WriteLine(xmlDoc);

            var riverNodes = xmlDoc.XPathSelectElements("/rivers/river");

            foreach (var riverNode in riverNodes)
            {
                //extract the mandatory fields
                string riverName    = riverNode.Element("name").Value;
                int    riverLenght  = int.Parse(riverNode.Element("length").Value);
                string riverOutflow = riverNode.Element("outflow").Value;

                //extract the optional fields
                int?drainageArea = null;
                if (riverNode.Element("drainage-area") != null)
                {
                    drainageArea = int.Parse(riverNode.Element("drainage-area").Value);
                }

                int?averageDischarge = null;
                if (riverNode.Element("average-discharge") != null)
                {
                    averageDischarge = int.Parse(riverNode.Element("average-discharge").Value);
                }

                // Import the parsed rivers into the database
                var river = new River()
                {
                    RiverName        = riverName,
                    Length           = riverLenght,
                    Outflow          = riverOutflow,
                    DrainageArea     = drainageArea,
                    AverageDischarge = averageDischarge
                };


                // Load the countries for each river
                var countryNodes = riverNode.XPathSelectElements("countries/country");
                var countryNames = countryNodes.Select(c => c.Value);
                foreach (var countryName in countryNames)
                {
                    var country = context.Countries.FirstOrDefault(c => c.CountryName == countryName);
                    river.Countries.Add(country);
                }

                // Save the river in the database
                context.Rivers.Add(river);
                context.SaveChanges();
            }

            System.Console.WriteLine("Rivers imported from rivers.xml");
        }
Ejemplo n.º 15
0
        public static void Main(string[] args)
        {
            var context = new GeographyEntities();

            // Test access to monasteries
            //var monasteries = context.Monasteries;
            //foreach (var monastery in monasteries)
            //{
            //    Console.WriteLine(monastery.Name);
            //}

            var countriesQuery =
                context.Countries
                .OrderBy(c => c.CountryName)
                .Where(c => c.Monasteries.Any())
                .Select(
                    c => new
            {
                c.CountryName,
                Monasteries = c.Monasteries
                              .OrderBy(m => m.Name)
                              .Select(m => m.Name)
            })
                .ToList();

            // Test the query
            //foreach (var country in countriesQuery)
            //{
            //    Console.WriteLine(country.CountryName + ": " + string.Join(", ", country.Monasteries));
            //}
            //Console.WriteLine();

            // Export to XML
            var xmlMonasteries = new XElement("monasteries");

            foreach (var country in countriesQuery)
            {
                var xmlCountry = new XElement("country");
                xmlCountry.Add(new XAttribute("name", country.CountryName));
                xmlMonasteries.Add(xmlCountry);

                foreach (var monastery in country.Monasteries)
                {
                    var xmlMonastery = new XElement("monastery", monastery);
                    xmlCountry.Add(xmlMonastery);
                }
            }

            // Test the xml content on the console
            //Console.WriteLine(xmlMonasteries);
            //Console.WriteLine();

            var xmlDoc       = new XDocument(xmlMonasteries);
            var filePathName = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\Monasteries.xml";

            xmlDoc.Save(filePathName);
        }
    static void Main()
    {
        Console.WriteLine("Continents:");
        var context = new GeographyEntities();

        foreach (var continent in context.Continents)
        {
            Console.WriteLine(continent.ContinentName);
        }
    }
Ejemplo n.º 17
0
        static void Main()
        {
            var context = new GeographyEntities();

            XDocument xmlDoc = XDocument.Load("../../rivers.xml");

            var riverNodes = xmlDoc.XPathSelectElements("/rivers/river");

            foreach (var riverNode in riverNodes)
            {
                string riverName    = riverNode.Element("name").Value;
                int    riverLength  = int.Parse(riverNode.Element("length").Value);
                string riverOutflow = riverNode.Element("outflow").Value;

                int?riverDrainageArea = null;
                if (riverNode.Element("drainage-area") != null)
                {
                    riverDrainageArea = int.Parse(riverNode.Element("drainage-area").Value);
                }

                int?riverAverageDischarge = null;
                if (riverNode.Element("average-discharge") != null)
                {
                    riverAverageDischarge = int.Parse(riverNode.Element("average-discharge").Value);
                }

                //Console.WriteLine("{0} {1} {2} {3} {4}", riverName, riverLength, riverOutflow, riverDrainageArea, riverAverageDischarge);

                var countryNodes = riverNode.XPathSelectElements("countries/country");
                var countries    = countryNodes.Select(c => c.Value);
                //Console.WriteLine("{0}->{1}", riverName, string.Join(", ", countries));  //Test

                var river = new River()
                {
                    RiverName        = riverName,
                    Length           = riverLength,
                    Outflow          = riverOutflow,
                    DrainageArea     = riverDrainageArea,
                    AverageDischarge = riverAverageDischarge
                };

                context.Rivers.Add(river);

                var countryNames = countryNodes.Select(c => c.Value);

                foreach (var countryName in countryNames)
                {
                    var countryToAddToRiver = context.Countries.FirstOrDefault(c => c.CountryName == countryName);
                    river.Countries.Add(countryToAddToRiver);
                }

                context.SaveChanges();
            }
        }
Ejemplo n.º 18
0
        public static void Main(string[] args)
        {
            var context = new GeographyEntities();

            // Parse the test file rivers.xml
            var xmlDoc = XDocument.Load(@"..\..\rivers.xml");

            var riverNodes = xmlDoc.XPathSelectElements("/rivers/river");

            foreach (var riverNode in riverNodes)
            {
                // mandatory
                string riverName    = riverNode.Element("name").Value;
                int    riverLength  = int.Parse(riverNode.Element("length").Value);
                string riverOutflow = riverNode.Element("outflow").Value;

                // optional
                int?riverDrainageArea = null;
                if (riverNode.Element("drainage-area") != null)
                {
                    riverDrainageArea = int.Parse(riverNode.Element("drainage-area").Value);
                }

                int?riverAverageDischarge = null;
                if (riverNode.Element("average-discharge") != null)
                {
                    riverAverageDischarge = int.Parse(riverNode.Element("average-discharge").Value);
                }

                // Create object for current River
                var river = new Rivers()
                {
                    RiverName        = riverName,
                    Length           = riverLength,
                    DrainageArea     = riverDrainageArea,
                    AverageDischarge = riverAverageDischarge,
                    Outflow          = riverOutflow
                };

                // Add the countries for the rivers
                var countryNodes = riverNode.XPathSelectElements("countries/country");
                var countryNames = countryNodes.Select(c => c.Value);
                foreach (var countryName in countryNames)
                {
                    var country = context.Countries.FirstOrDefault(c => c.CountryName == countryName);
                    river.Countries.Add(country);
                }

                // Add the rivers to the DB
                context.Rivers.Add(river);
                context.SaveChanges();
            }
        }
Ejemplo n.º 19
0
        static void Main(string[] args)
        {
            var context     = new GeographyEntities();
            var doc         = XDocument.Load("../../../rivers-query.xml");
            var queriesRoot = doc.Root.Elements();

            var resultXml  = new XDocument();
            var resultRoot = new XElement("results");

            resultXml.Add(resultRoot);

            foreach (var query in queriesRoot)
            {
                var maxResultsAttribute = query.Attribute("max-results");
                var maxResult           = -1;
                if (maxResultsAttribute != null)
                {
                    maxResult = int.Parse(maxResultsAttribute.Value);
                }

                var countries = query.Elements().Select(c => c.Value).ToList();
                var rivers    = context.Rivers
                                .Where(r => r.Countries.Any(c => countries.Contains(c.CountryName)))
                                .Select(r => r.RiverName)
                                .OrderBy(r => r)
                                .ToList();

                var currentRiversCount = rivers.Count;
                var riversNode         = new XElement("rivers");
                riversNode.SetAttributeValue("total-count", currentRiversCount);
                var actualResult = currentRiversCount;
                if (maxResult != -1)
                {
                    if (maxResult < currentRiversCount)
                    {
                        actualResult = maxResult;
                    }
                }

                riversNode.SetAttributeValue("listed-count", actualResult);
                for (int i = 0; i < actualResult; i++)
                {
                    var riverNode = new XElement("river");
                    riverNode.Value = rivers[i];
                    riversNode.Add(riverNode);
                }

                resultRoot.Add(riversNode);
            }

            Console.WriteLine(resultXml);
        }
        private static IQueryable <River> BuildRiversQuery(
            GeographyEntities context, XElement queryElement)
        {
            IQueryable <River> riversQuery = context.Rivers.AsQueryable();

            foreach (var countryElement in queryElement.XPathSelectElements("country"))
            {
                var countryName = countryElement.Value;
                riversQuery = riversQuery.Where(
                    r => r.Countries.Any(c => c.CountryName == countryName));
            }
            riversQuery = riversQuery.OrderBy(r => r.RiverName);
            return(riversQuery);
        }
Ejemplo n.º 21
0
        static void Main(string[] args)
        {
            var context = new GeographyEntities();

            var rivers = context.Rivers
                         .OrderByDescending(r => r.Length)
                         .Select(r => new
            {
                riverName   = r.RiverName,
                riverLength = r.Length,
                countries   = r.Countries.OrderBy(c => c.CountryName).Select(c => c.CountryName)
            }).ToList();

            var json = new JavaScriptSerializer().Serialize(rivers);

            File.WriteAllText("../../rivers.json", json);
        }
Ejemplo n.º 22
0
    static void Main()
    {
        var xmlDoc     = XDocument.Load(@"..\..\rivers.xml");
        var riverNodes = xmlDoc.XPathSelectElements("/rivers/river");
        var context    = new GeographyEntities();

        foreach (var riverNode in riverNodes)
        {
            // Parse the river properties
            var river = new River
            {
                RiverName = riverNode.Descendants("name").First().Value,
                Length    = int.Parse(riverNode.Descendants("length").First().Value),
                Outflow   = riverNode.Descendants("outflow").First().Value
            };
            var drainageArea = riverNode.Descendants("drainage-area").FirstOrDefault();
            if (drainageArea != null)
            {
                river.DrainageArea = int.Parse(drainageArea.Value);
            }
            var averageDischarge = riverNode.Descendants("average-discharge").FirstOrDefault();
            if (averageDischarge != null)
            {
                river.AverageDischarge = int.Parse(averageDischarge.Value);
            }

            // Load the countries for each river
            var countryNodes = riverNode.XPathSelectElements("countries/country");
            foreach (var countryNode in countryNodes)
            {
                var country = context.Countries.
                              FirstOrDefault(c => c.CountryName == countryNode.Value);
                if (country == null)
                {
                    throw new Exception("Can not find country: " + countryNode.Value);
                }
                river.Countries.Add(country);
            }

            // Save the river in the database
            context.Rivers.Add(river);
            context.SaveChanges();
        }

        Console.WriteLine("Rivers imported from rivers.xml");
    }
Ejemplo n.º 23
0
        static void Main()
        {
            var context = new GeographyEntities();
            var countriesWithTheirMonasteries = context.Countries
                                                .Where(c => c.Monasteries.Count > 0)
                                                .OrderBy(c => c.CountryName)
                                                .Select(c => new
            {
                c.CountryName,
                Monasteries = c.Monasteries
                              .OrderBy(m => m.Name)
                              .Select(m => m.Name)
                              .ToList()
            })
                                                .ToList();

            var xmlMonansteries = new XElement("monasteries");

            foreach (var country in countriesWithTheirMonasteries)
            {
                var xmlCountry = new XElement("country");
                xmlCountry.Add(new XAttribute("name", country.CountryName));
                xmlMonansteries.Add(xmlCountry);
                foreach (var monastery in country.Monasteries)
                {
                    xmlCountry.Add(new XElement("monastery", monastery));
                }
            }
            var xmlDoc = new XDocument(xmlMonansteries);

            xmlDoc.Save("monasteries.xml");
            Console.WriteLine(xmlDoc);


            //countriesWithTheirMonasteries.ForEach(c =>
            //{
            //    Console.WriteLine("--{0}--", c.CountryName);
            //    var count = 1;
            //    c.Monasteries.ForEach(m =>
            //    {
            //        Console.WriteLine("{0}. {1}",count, m);
            //        count++;
            //    });
            //    Console.WriteLine();
            //});
        }
Ejemplo n.º 24
0
        static void Main(string[] args)
        {
            var xmlDoc     = XDocument.Load(@"..\..\rivers.xml");
            var riverNodes = xmlDoc.XPathSelectElements("/rivers/river");
            var context    = new GeographyEntities();

            foreach (var riverNode in riverNodes)
            {
                var    river        = new River();
                string riverName    = riverNode.Element("name").Value;
                int    riverLength  = int.Parse(riverNode.Element("length").Value);
                string riverOutflow = riverNode.Element("outflow").Value;

                int?drainageArea     = null;
                int?averageDischarge = null;

                var riverNodeElement = riverNode.Element("drainage-area");
                if (riverNodeElement != null)
                {
                    drainageArea = int.Parse(riverNodeElement.Value);
                }

                if (riverNode.Element("average-discharge") != null)
                {
                    averageDischarge = int.Parse(riverNode.Element("average-discharge").Value);
                }

                river.RiverName        = riverName;
                river.Length           = riverLength;
                river.Outflow          = riverOutflow;
                river.DrainageArea     = drainageArea;
                river.AverageDischarge = averageDischarge;

                var countryNodes = riverNode.XPathSelectElements("countries/country");
                var countryNames = countryNodes.Select(c => c.Value);

                foreach (var countryName in countryNames)
                {
                    var country = context.Countries.FirstOrDefault(c => c.CountryName == countryName);
                    river.Countries.Add(country);
                }

                context.Rivers.Add(river);
                context.SaveChanges();
            }
        }
Ejemplo n.º 25
0
        static void Main(string[] args)
        {
            var context = new GeographyEntities();

            /*
             * var rivers = context.Rivers.Select(r =>
             *  new
             *  {
             *      r.RiverName,
             *      r.Length,
             *      Countries = r.Countries.Select(c => c.CountryName)
             *  });
             * foreach (var river in rivers)
             * {
             *  foreach (var country in river.Countries)
             *  {
             *      Console.WriteLine("{0} - {1} - {2}",river.RiverName, river.Length,country);
             *  }
             *
             * }
             */
            var riversQuery = context.Rivers
                              .OrderByDescending(r => r.Length)
                              .Select(r => new
            {
                r.RiverName,
                r.Length,
                Countries = r.Countries
                            .OrderBy(c => c.CountryName)
                            .Select(c => c.CountryName)
            });

            foreach (var river in riversQuery)
            {
                foreach (var country in river.Countries)
                {
                    //Console.WriteLine("{0} - {1} - {2}", river.RiverName, river.Length, country);
                }
            }
            var jsSerializer = new JavaScriptSerializer();
            var riversJson   = jsSerializer.Serialize(riversQuery.ToList());

            Console.WriteLine(riversJson);

            System.IO.File.WriteAllText(@"D:\softuni\DatabaseAps\Lab\Solution\Db-Apps-Lab\Export-Rivers-as-JSON\bin\Debug\rivers.json", riversJson);
        }
Ejemplo n.º 26
0
        public static void Main(string[] args)
        {
            var context = new GeographyEntities();

            // Test the link to DB
            //var rivers = context.Rivers;

            //foreach (var river in rivers)
            //{
            //    Console.WriteLine(river.RiverName);
            //}


            var riversNeededInfo = context.Rivers
                                   .OrderByDescending(r => r.Length)
                                   .Select(r =>
                                           new
            {
                Name      = r.RiverName,
                Length    = r.Length,
                Countries = r.Countries
                            .OrderBy(c => c.CountryName)
                            .Select(c => c.CountryName)
            }).ToList();

            // Test the query in the console
            //foreach (var river in riversNeededInfo)
            //{
            //    Console.WriteLine("River: " + river.Name + ", " + river.Length + "m");
            //    var countries = string.Join(", ", Array.ConvertAll(river.Countries.ToArray(), i => i.ToString()));
            //    Console.WriteLine("\tCountries: {0}", countries);
            //    Console.WriteLine();
            //}

            // Export to JSON
            var serializer   = new JsonSerializer();
            var filePathName = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\Rivers.json";

            using (var sw = new StreamWriter(filePathName))
                using (JsonWriter writer = new JsonTextWriter(sw))
                {
                    serializer.Formatting = Formatting.Indented;
                    serializer.Serialize(writer, riversNeededInfo);
                }
        }
Ejemplo n.º 27
0
        static void Main(string[] args)
        {
            var context = new GeographyEntities();

            /*
             * foreach (var monastery in context.Monasteries)
             * {
             *  Console.WriteLine(monastery.Name);
             * }
             */
            var countriesQuery = context.Countries
                                 .Where(c => c.Monasteries.Any() != false)
                                 .OrderBy(c => c.CountryName)
                                 .Select(c => new
            {
                c.CountryName,
                Monasteries = c.Monasteries
                              .OrderBy(m => m.Name)
                              .Select(m => m.Name)
            });

            foreach (var country in countriesQuery)
            {
                Console.WriteLine(country.CountryName + " " + string.Join(", ", country.Monasteries));
            }

            var xmlMonasteries = new XElement("monasteries");

            foreach (var country in countriesQuery)
            {
                var xmlCountry = new XElement("country");
                xmlCountry.Add(new XAttribute("name", country.CountryName));
                xmlMonasteries.Add(xmlCountry);

                foreach (var monastery in country.Monasteries)
                {
                    xmlCountry.Add(new XElement("monastery", monastery));
                }
            }
            //Console.WriteLine(xmlMonasteries);

            var xmlDoc = new XDocument(xmlMonasteries);

            xmlDoc.Save("monasteries.xml");
        }
Ejemplo n.º 28
0
        static void Main()
        {
            var context = new GeographyEntities();
            var rivers  = context.Rivers
                          .OrderByDescending(r => r.Length)
                          .Select(r => new
            {
                r.RiverName,
                r.Length,
                RiversCountries = r.Countries
                                  .OrderBy(c => c.CountryName)
                                  .Select(c => c.CountryName)
                                  .ToList()
            })
                          .ToList();
            var          jsSerializer = new JavaScriptSerializer();
            var          riversJson   = jsSerializer.Serialize(rivers);
            StreamWriter file         = new StreamWriter
                                            (@"E:\DISK D\Softuni-Projects\Modul Back-End\DB Apps July 2015\Exams\Db-Apps-Lab\Export-Rivers-as-JSON\bin\Debug\rivers.json");

            file.WriteLine(riversJson);
            file.Close();

            //rivers.ForEach(r =>
            //{
            //    Console.Write("River name: {0}, Length: {1}  ",
            //        r.RiverName,
            //        r.Length);
            //    Console.WriteLine();
            //    Console.WriteLine("Countries => ");
            //    r.RiversCountries.ForEach(c =>
            //    {
            //        if (r.RiversCountries.Count == 1)
            //        {
            //            Console.Write("{0}", c);
            //        }
            //        else
            //        {
            //            Console.Write("{0}, ", c);
            //        }
            //    });
            //    Console.WriteLine();
            //    Console.WriteLine();
            //});
        }
Ejemplo n.º 29
0
        private static void ParseAndAddCountriesToRiver(GeographyEntities context, XElement riverElement, River riverEntity)
        {
            var countryElements = riverElement.XPathSelectElements("countries/country");

            foreach (var countryElement in countryElements)
            {
                var countryName   = countryElement.Value;
                var countryEntity = context.Countries.FirstOrDefault(c => c.CountryName == countryName);
                if (countryEntity != null)
                {
                    riverEntity.Countries.Add(countryEntity);
                }
                else
                {
                    throw new Exception(string.Format("Cannot find country {0} in the DB", countryName));
                }
            }
        }
Ejemplo n.º 30
0
 static void Main(string[] args)
 {
     var context = new GeographyEntities();
     var doc = XDocument.Load("../../../Rivers.xml");
     var rivers = doc.Root.Elements();
     foreach (XElement river in rivers)
     {
         try
         {
             var importRiver = ParseRiver(context, river);
             ImportRiver(context, importRiver);
         }
         catch (ArgumentException ex)
         {
             Console.WriteLine(ex.Message);
         }
     }
 }
Ejemplo n.º 31
0
        static void Main(string[] args)
        {
            var context = new GeographyEntities();

            var xmlDoc        = XDocument.Load("../../rivers.xml");
            var riverElements = xmlDoc.Root.Elements();

            foreach (var riverElement in riverElements)
            {
                var riverEntity = new River();

                riverEntity.RiverName = riverElement.Element("name").Value;
                riverEntity.Length    = int.Parse(riverElement.Element("length").Value);
                riverEntity.Outflow   = riverElement.Element("outflow").Value;

                if (riverElement.Element("average-discharge") != null)
                {
                    riverEntity.AverageDischarge = int.Parse(riverElement.Element("average-discharge").Value);
                }

                if (riverElement.Element("drainage-area") != null)
                {
                    riverEntity.DrainageArea = int.Parse(riverElement.Element("drainage-area").Value);
                }

                var countryElements = riverElement.XPathSelectElements("countries/contry");

                foreach (var countryElement in countryElements)
                {
                    var countryName   = countryElement.Value;
                    var countryEntity = context.Countries.FirstOrDefault(c => c.CountryName == countryName);
                    if (countryEntity != null)
                    {
                        riverEntity.Countries.Add(countryEntity);
                    }
                    else
                    {
                        throw new Exception(String.Format("Cannot find {0} in the DB", countryName));
                    }
                }
                context.Rivers.Add(riverEntity);
            }
            context.SaveChanges();
        }
Ejemplo n.º 32
0
        static void Main(string[] args)
        {
            var context = new GeographyEntities();
            var doc     = XDocument.Load("../../../Rivers.xml");
            var rivers  = doc.Root.Elements();

            foreach (XElement river in rivers)
            {
                try
                {
                    var importRiver = ParseRiver(context, river);
                    ImportRiver(context, importRiver);
                }
                catch (ArgumentException ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
Ejemplo n.º 33
0
        public static void Main(string[] args)
        {
            // Test link to the Db
            var context = new GeographyEntities();
            //var continentsQuery = context.Continents.Select(c => c.ContinentName);

            //foreach (var continent in continentsQuery)
            //{
            //    Console.WriteLine(continent);
            //}

            // Export Rivers to JSON
            var riversQuery =
                context.Rivers
                .OrderByDescending(r => r.Length)
                .Select(
                    r =>
                    new RiversDto
            {
                RiverName   = r.RiverName,
                RiverLength = r.Length,
                Countries   = r.Countries
                              .OrderBy(c => c.CountryName)
                              .Select(c => c.CountryName)
            }).ToList();
            var filePathNameJson = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\Rivers.json";

            JsonExporter.Export(filePathNameJson, riversQuery);

            // Export Monasteries by Country as XML
            var countriesWMonasteriesQuery = context.Countries
                                             .OrderBy(c => c.CountryName)
                                             .Where(c => c.Monasteries.Any())
                                             .Select(c => new CountriesDto()
            {
                CountryName = c.CountryName,
                Monasteries = c.Monasteries.Select(m => m.Name)
            }).ToList();

            var filePathNameXml = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\Monasteries.xml";

            XmlExporter.Export(filePathNameXml, countriesWMonasteriesQuery);
        }
Ejemplo n.º 34
0
        public static void Main(string[] args)
        {
            const string SaveXmlIn = @"..\..\..\Monasteries.xml";

            var context = new GeographyEntities();
            var monasteries = context.Countries
                .Where(c => c.Monasteries.Count > 0)
                .Select(c => new
                {
                    c.CountryName,
                    Monasteries = c.Monasteries.Select(m => new
                    {
                        m.Name
                    })
                        .OrderBy(m => m.Name)
                })
                .OrderBy(c => c.CountryName)
                .ToList();

            var xml = new XDocument();
            var root = new XElement("monasteries");
            xml.Add(root);

            monasteries.ForEach(c =>
            {
                var country = new XElement("country");
                country.SetAttributeValue("name", c.CountryName);
                foreach (var monastery in c.Monasteries)
                {
                    var mon = new XElement("monastery", monastery.Name);
                    country.Add(mon);
                }

                root.Add(country);
            });

            xml.Save(SaveXmlIn);
            var directory = new DirectoryInfo(SaveXmlIn);
            Console.WriteLine("XML saved to {0}", directory.FullName);
        }
Ejemplo n.º 35
0
 private static void ImportRiver(GeographyEntities context, River river)
 {
     context.Rivers.AddOrUpdate(river);
     context.SaveChanges();
     Console.WriteLine("{0} saved to the db.", river.RiverName);
 }
Ejemplo n.º 36
0
        private static River ParseRiver(GeographyEntities context, XElement river)
        {
            if (string.IsNullOrEmpty(river.Element("name").Value))
            {
                throw new ArgumentException("River's name is mandatory!");
            }

            var name = river.Element("name").Value;

            if (string.IsNullOrEmpty(river.Element("length").Value))
            {
                throw new ArgumentException("River's length is mandatory!");
            }

            var length = int.Parse(river.Element("length").Value);

            if (string.IsNullOrEmpty(river.Element("outflow").Value))
            {
                throw new ArgumentException("River's outflow is mandatory!");
            }

            var outflow = river.Element("outflow").Value;

            int? drainageArea = null;
            var drainageNode = river.Element("drainage-area");
            if (drainageNode != null)
            {
                drainageArea = int.Parse(river.Element("drainage-area").Value);
            }

            int? avgDischarge = null;
            var dischargeNode = river.Element("average-discharge");
            if (dischargeNode != null)
            {
                avgDischarge = int.Parse(river.Element("average-discharge").Value);
            }

            var countries = new List<Country>();
            var countryNode = river.Element("countries").Elements();
            foreach (var country in countryNode)
            {
                var countryName = country.Value;
                var riverCountry = context.Countries.FirstOrDefault(c => c.CountryName == countryName);
                if (riverCountry == null)
                {
                    throw new ArgumentException("{0} not found in db!", countryName);
                }

                countries.Add(riverCountry);
            }

            var newRiver = new River()
            {
                RiverName = name,
                Length = length,
                Outflow = outflow,
                DrainageArea = drainageArea,
                AverageDischarge = avgDischarge,
                Countries = countries
            };

            return newRiver;
        }
Ejemplo n.º 37
0
 public static void Main(string[] args)
 {
     var context = new GeographyEntities();
     var contitentNames = context.Continents.Select(c => c.ContinentName).ToList();
     contitentNames.ForEach(Console.WriteLine);
 }