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); }
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"); }
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); }
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"); }
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); }
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(); }
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()); }
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); }
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"); }
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 "); }
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); } }
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"); }
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); } }
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(); } }
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(); } }
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); }
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); }
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"); }
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(); //}); }
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(); } }
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); }
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); } }
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"); }
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(); //}); }
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)); } } }
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); } } }
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(); }
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); } } }
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); }
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); }
private static void ImportRiver(GeographyEntities context, River river) { context.Rivers.AddOrUpdate(river); context.SaveChanges(); Console.WriteLine("{0} saved to the db.", river.RiverName); }
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; }
public static void Main(string[] args) { var context = new GeographyEntities(); var contitentNames = context.Continents.Select(c => c.ContinentName).ToList(); contitentNames.ForEach(Console.WriteLine); }