private static void ImportTelescopes(PlanetHunterContext context) { var json = File.ReadAllText("../../datasets/telescopes.json"); var telescopes = JsonConvert.DeserializeObject <ICollection <TelescopesDTO> >(json); using (context) { foreach (var telescope in telescopes) { if (telescope.MirrorDiameter <= 0 || telescope.Name == null || telescope.Location == null) { Console.WriteLine("Invalid data format."); continue; } var tel = new Telescope { Name = telescope.Name, Location = telescope.Location, MirrorDiameter = telescope.MirrorDiameter }; context.Telescopes.Add(tel); Console.WriteLine($"Record {telescope.Name} successfully imported."); } context.SaveChanges(); } }
public static void AddTelescopes(List <TelescopeDTO> telescopes) { using (var ctx = new PlanetHunterContext()) { foreach (var telescopeDTO in telescopes) { if (telescopeDTO.Name != null && telescopeDTO.Name != null) { if (telescopeDTO.MirrorDiameter < 0) { telescopeDTO.MirrorDiameter = null; } if (telescopeDTO.MirrorDiameter == 0) { telescopeDTO.MirrorDiameter = null; } var telescope = new Telescope() { Location = telescopeDTO.Location, MirrorDiameter = telescopeDTO.MirrorDiameter, Name = telescopeDTO.Name }; ctx.Telescopes.Add(telescope); Console.WriteLine($"Record {telescope.Name} successfully imported."); ctx.SaveChanges(); } else { Console.WriteLine("Error. Invalid data provided."); } } } }
private static void ImportAstronomers(PlanetHunterContext context) { var json = File.ReadAllText("../../datasets/astronomers.json"); var astronomers = JsonConvert.DeserializeObject <ICollection <AstronomerDTO> >(json); using (context) { foreach (var astro in astronomers) { if (astro.FirstName == null || astro.LastName == null) { Console.WriteLine("Invalid data format."); continue; } var a = new Astronomer() { FirstName = astro.FirstName, LastName = astro.LastName }; context.Astronomers.Add(a); Console.WriteLine($"Record {astro.FirstName} {astro.LastName} successfully imported."); } context.SaveChanges(); } }
static void Main() { var context = new PlanetHunterContext(); //Export Data //JSON Export ExportPlanets(context); }
private static void InitializeDatabase() { try { var ctx = new PlanetHunterContext(); ctx.Database.Initialize(true); } catch (Exception e) { Console.WriteLine(e.Message); } }
public static void AddStars(IEnumerable <XElement> stars) { using (var ctx = new PlanetHunterContext()) { foreach (var starXML in stars) { var starName = starXML.Element("Name").Value; int temperature = int.Parse(starXML.Element("Temperature").Value); var starSystem = starXML.Element("StarSystem").Value; if (starName != null && temperature >= 2400 && starSystem != null) { if (!ctx.StarSystems.Any(c => c.Name == starSystem)) { var starSystemObject = new StarSystem() { Name = starSystem }; ctx.StarSystems.Add(starSystemObject); var star = new Star() { Name = starName, Temperature = temperature, HostStarSystem = starSystemObject }; ctx.Stars.Add(star); Console.WriteLine($"Record {star.Name} successfully added."); } else { var starSystemObject = ctx.StarSystems.FirstOrDefault(c => c.Name == starSystem); var star = new Star() { Name = starName, Temperature = temperature, HostStarSystem = starSystemObject }; ctx.Stars.Add(star); Console.WriteLine($"Record {star.Name} successfully added."); } } else { Console.WriteLine("Error. Invalid data provided!"); } } ctx.SaveChanges(); } }
private static void ImportDiscoveries(PlanetHunterContext context) { var discXDoc = XDocument.Load("../../datasets/discoveries.xml"); XElement discRoot = discXDoc.Root; using (context) { foreach (var discover in discRoot.Elements()) { var date = discover.Element("DateMade"); var telescope = discover.Element("Telescope"); } } }
static void Main() { var context = new PlanetHunterContext(); //context.Database.Initialize(true); //02.Data Import //-JSON Import //ImportAstronomers(context); //ImportTelescopes(context); //ImportPlanets(context); //-XML Import //ImportStars(context); //ImportDiscoveries(context); }
private static void ImportStars(PlanetHunterContext context) { XDocument starsXDoc = XDocument.Load("../../datasets/stars.xml"); XElement starsRoot = starsXDoc.Root; using (context) { foreach (var star in starsRoot.Elements()) { var name = star.Element("Name"); var temperature = int.Parse(star.Element("Temperature").Value); var starSystem = star.Element("StarSystem").Value; if (name == null || temperature < 2400 || starSystem == null) { Console.WriteLine("Invalid data format."); continue; } var s = new Star(); var starSystemName = context.StarSystems.FirstOrDefault(ss => ss.Name == starSystem); if (starSystemName != null) { s.Name = name.Value; s.Temperature = temperature; s.StarSystem = starSystemName; } else if (starSystemName == null) { s.Name = name.Value; s.Temperature = temperature; var ss = new StarSystem(); ss.Name = name.Value; s.StarSystem = ss; } context.Stars.Add(s); Console.WriteLine($"Record {s.Name} successfully imported."); } context.SaveChanges(); } }
public static void ExportPlanets(string telescopeName) { var ctx = new PlanetHunterContext(); if (ctx.Planets.Any(c => c.Discovery.Telescope.Name == telescopeName)) { var planets = ctx.Planets.Where(c => c.Discovery.Telescope.Name == telescopeName).Select(c => new { Name = c.Name, Mass = c.Mass, Orbiting = new { c.HostStarSystem.Name } }).OrderByDescending(c => c.Mass).ToList(); var json = JsonConvert.SerializeObject(planets, Formatting.Indented); File.WriteAllText($"../../exports/planets-by-{telescopeName}", json); } }
private static void ExportPlanets(PlanetHunterContext context) { var enterTelescopeName = Console.ReadLine(); var telescopeName = context.Planets .Where(p => p.Discovery.Telescope.Name == enterTelescopeName) .Select(t => new { Name = t.Name, Mass = t.Mass, Orbiting = t.StarSystem.Stars.Select(a => new { Name = a.Name }) }) .OrderByDescending(b => b.Mass); string result = JsonConvert.SerializeObject(telescopeName, Formatting.Indented); Console.WriteLine(result); File.WriteAllText($"../../Export/planets-by-{enterTelescopeName}.json", result); }
private static void ImportPlanets(PlanetHunterContext context) { var json = File.ReadAllText("../../datasets/planets.json"); var planets = JsonConvert.DeserializeObject <ICollection <PlanetsDTO> >(json); using (context) { foreach (var planet in planets) { if (planet.Name == null || planet.StarSystem == null || planet.Mass <= 0) { Console.WriteLine("Invalid data format."); continue; } var p = new Planet(); var starSystem = context.StarSystems.FirstOrDefault(pl => pl.Name == planet.StarSystem); if (starSystem != null) { p.Name = planet.Name; p.Mass = planet.Mass; p.StarSystem = starSystem; } else if (starSystem == null) { p.Name = planet.Name; p.Mass = planet.Mass; var ss = new StarSystem(); ss.Name = planet.Name; p.StarSystem = ss; } context.Planets.Add(p); Console.WriteLine($"Record {planet.Name} successfully imported."); } context.SaveChanges(); } }
public static void AddAstronomers(List <AstronomerDTO> astronomers) { using (var ctx = new PlanetHunterContext()) { foreach (var astronomerDTO in astronomers) { if (astronomerDTO.FirstName != null && astronomerDTO.LastName != null) { var astronomer = new Astronomer() { FirstName = astronomerDTO.FirstName, LastName = astronomerDTO.LastName }; ctx.Astronomers.Add(astronomer); Console.WriteLine($"Record {astronomer.FirstName} {astronomer.LastName} successfully imported."); } else { Console.WriteLine("Error. Invalid data provided!"); } } ctx.SaveChanges(); } }
public static void AddDiscoveries(IEnumerable <XElement> discoveries) { using (var ctx = new PlanetHunterContext()) { foreach (var discoveryXML in discoveries) { var date = Convert.ToDateTime(discoveryXML.Attribute("DateMade").Value); var telescopeName = discoveryXML.Attribute("Telescope").Value; var telescope = ctx.Telescopes.FirstOrDefault(c => c.Name == telescopeName); var stars = discoveryXML.Element("Stars")?.Elements(); var starNames = new List <string>(); if (stars != null) { foreach (var starXML in stars) { if (ctx.Stars.Any(c => c.Name == starXML.Value)) { starNames.Add(starXML.Value); } } } var planets = discoveryXML.Element("Planets")?.Elements(); var planetNames = new List <string>(); if (planets != null) { foreach (var planetXML in planets) { if (ctx.Planets.Any(c => c.Name == planetXML.Value)) { planetNames.Add(planetXML.Value); } } } var pioneers = discoveryXML.Element("Pioneers")?.Elements(); var pioneersNames = new List <string>(); if (pioneers != null) { foreach (var astronomerXML in pioneers) { var fullName = astronomerXML.Value.Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray(); var firstName = fullName[1]; var lastName = fullName[0]; if (ctx.Astronomers.Any(c => c.FirstName == firstName && c.LastName == lastName)) { var fullNameString = firstName + " " + lastName; pioneersNames.Add(fullNameString); } } } var observersNames = new List <string>(); var observers = discoveryXML.Element("Observers")?.Elements(); if (observers != null) { foreach (var astronomerXML in observers) { var fullName = astronomerXML.Value.Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries).ToArray(); var firstName = fullName[1]; var lastName = fullName[0]; if (ctx.Astronomers.Any(c => c.FirstName == firstName && c.LastName == lastName)) { var fullNameString = firstName + " " + lastName; observersNames.Add(fullNameString); } } } var pioneersObject = new List <Astronomer>(); var observersObject = new List <Astronomer>(); foreach (var observerName in observersNames) { var array = observerName.Split(' ').ToArray(); var firstName = array[0]; var lastName = array[1]; if (ctx.Astronomers.Any(c => c.FirstName == firstName && c.LastName == lastName)) { var observerAstronomer = ctx.Astronomers.FirstOrDefault(c => c.FirstName == firstName && c.LastName == lastName); observersObject.Add(observerAstronomer); } } foreach (var pioneerName in pioneersNames) { var array = pioneerName.Split(' ').ToArray(); var firstName = array[0]; var lastName = array[1]; if (ctx.Astronomers.Any(c => c.FirstName == firstName && c.LastName == lastName)) { var pioneerAstronomer = ctx.Astronomers.FirstOrDefault(c => c.FirstName == firstName && c.LastName == lastName); pioneersObject.Add(pioneerAstronomer); } } var planetsObject = new List <Planet>(); foreach (var planetName in planetNames) { if (ctx.Planets.Any(c => c.Name == planetName)) { var planet = ctx.Planets.FirstOrDefault(c => c.Name == planetName); planetsObject.Add(planet); } else { continue; } } var starsObject = new List <Star>(); foreach (var starName in starNames) { if (ctx.Stars.Any(c => c.Name == starName)) { var star = ctx.Stars.FirstOrDefault(c => c.Name == starName); starsObject.Add(star); } } if (date != null) { var discovery = new Discovery() { Date = date, Telescope = telescope, Observers = observersObject, Pioneers = pioneersObject, Planets = planetsObject, Stars = starsObject }; ctx.Discoveries.Add(discovery); Console.WriteLine($"Discovery ({discovery.Date.Date}-{discovery.Telescope.Name}) with {starsObject.Count} star(s), {planetsObject.Count} planet(s), {pioneersObject.Count} pioneer(s) and {observersObject.Count} observers succesfully imported! "); ctx.SaveChanges(); } } } }
internal static void ExportAllStars() { var ctx = new PlanetHunterContext(); var stars = ctx.Stars.Select(c => new { Name = c.Name, c.Temperature, StarSystemName = c.HostStarSystem.Name, DiscoveryDate = c.Discovery.Date, TelescopeName = c.Discovery.Telescope.Name, Astronomers = c.Discovery.Pioneers }); }
public static void AddPlanets(List <PlanetDTO> planets) { using (var ctx = new PlanetHunterContext()) { foreach (var planetDTO in planets) { if (planetDTO.Name != null && planetDTO.StarSystem != null) { if (!ctx.StarSystems.Any(c => c.Name == planetDTO.StarSystem)) { var starSystem = new StarSystem() { Name = planetDTO.StarSystem }; ctx.StarSystems.Add(starSystem); if (planetDTO.Mass > 0 && planetDTO.Mass != 0) { var planet = new Planet() { Name = planetDTO.Name, Mass = planetDTO.Mass, HostStarSystem = starSystem }; ctx.Planets.Add(planet); Console.WriteLine($"Record {planet.Name} successfully imported!"); ctx.SaveChanges(); } else { Console.WriteLine("Error. Invalid data provided!"); } } else { var starSystem = ctx.StarSystems.FirstOrDefault(c => c.Name == planetDTO.StarSystem); if (planetDTO.Mass > 0 && planetDTO.Mass != 0) { var planet = new Planet() { Name = planetDTO.Name, Mass = planetDTO.Mass, HostStarSystem = starSystem }; ctx.Planets.Add(planet); Console.WriteLine($"Record {planet.Name} successfully imported!"); ctx.SaveChanges(); } else { Console.WriteLine("Error. Invalid data provided!"); } } } else { Console.WriteLine("Error. Invalid data provided!"); } } } }