public static void ImportStars() { var context = new MassDefectDatabaseContext(); var json = File.ReadAllText(@"..\..\Datasets\stars.json"); var stars = JsonConvert.DeserializeObject <IEnumerable <StarDTO> >(json); foreach (var star in stars) { if (star.name == null || context.Stars.Any(s => s.Name == star.name)) { Console.WriteLine("Error: Invalid data."); } else { int?currentStarSolarSystemId = null; int?hasSolarSystem = GetSolarSystemId(star.solarSystem); if (hasSolarSystem != null) { currentStarSolarSystemId = hasSolarSystem; } var currentStar = new Star() { Name = star.name, SolarSystemId = currentStarSolarSystemId }; context.Stars.Add(currentStar); Console.WriteLine("Successfully imported Star {0}.", star.name); } } context.SaveChanges(); }
private static void ImportStarToDatabase(StarDto starDto) { var db = new MassDefectDatabaseContext(); if (starDto == null) { throw new ArgumentNullException("Star cannot be null!"); } else if (starDto.Name == null) { throw new ArgumentNullException("StarName cannot be null!"); } else if (starDto.SolarSystem == null) { throw new ArgumentNullException("SolarSystem cannot be null!"); } var solarSystem = db.SolarSystems.FirstOrDefault(s => s.Name == starDto.SolarSystem); if (solarSystem == null) { throw new ArgumentNullException("Solar system doesn't exists!"); } var newStar = new Star() { Name = starDto.Name, SolarSystem = solarSystem }; db.Stars.Add(newStar); db.SaveChanges(); }
private static void ImportAnomalyToDatabase(AnomalyDto anomalyDto) { if (anomalyDto.OriginPlanet == null) { throw new ArgumentNullException("Origin planet cannot be null!"); } else if (anomalyDto.TeleportPlanet == null) { throw new ArgumentNullException("Teleport planet cannot be null!"); } using (var db = new MassDefectDatabaseContext()) { var originPlanet = db.Planets.FirstOrDefault(p => p.Name == anomalyDto.OriginPlanet); var teleportPlanet = db.Planets.FirstOrDefault(p => p.Name == anomalyDto.TeleportPlanet); if (originPlanet == null || teleportPlanet == null) { throw new ArgumentNullException("Origin and teleport planet doesn't exist in dbo.Planets"); } var newAnomaly = new Anomaly() { OriginPlanet = originPlanet, TeleportPlanet = teleportPlanet }; db.Anomalies.Add(newAnomaly); db.SaveChanges(); } }
public static void ImportAnomalities() { var context = new MassDefectDatabaseContext(); var json = File.ReadAllText(@"..\..\Datasets\anomalies.json"); var anomalies = JsonConvert.DeserializeObject <IEnumerable <AnomalyDTO> >(json); foreach (var anomaly in anomalies) { if (anomaly.originPlanet == null || anomaly.teleportPlanet == null || GetPlanetId(anomaly.originPlanet) == null || GetPlanetId(anomaly.teleportPlanet) == null) { Console.WriteLine("Error: Invalid data."); } else { var currentAnomaly = new Anomaly() { OriginPlanetId = GetPlanetId(anomaly.originPlanet), TeleportPlanetId = GetPlanetId(anomaly.teleportPlanet) }; context.Anomalies.Add(currentAnomaly); Console.WriteLine("Successfully imported anomaly"); } } context.SaveChanges(); }
public static void ImportAnomalityVictims() { var context = new MassDefectDatabaseContext(); var json = File.ReadAllText(@"..\..\Datasets\anomaly-victims.json"); var victims = JsonConvert.DeserializeObject <IEnumerable <VictimDTO> >(json); foreach (var victim in victims) { if (victim.id == null || victim.person == null) { Console.WriteLine("Error: Invalid data."); } else { if (context.Anomalies.Any(a => a.Id == victim.id) || GetPersonId(victim.person) != null) { int?tempId = GetPersonId(victim.person); if (tempId.HasValue) { int victimId = tempId.Value; Person victimToAdd = context.People.FirstOrDefault(p => p.Id == victimId); context.Anomalies.First(v => v.Id == victim.id).Victims.Add(victimToAdd); } } else { continue; } } } context.SaveChanges(); }
public static void ImportPeople() { var context = new MassDefectDatabaseContext(); var json = File.ReadAllText(@"..\..\Datasets\persons.json"); var people = JsonConvert.DeserializeObject <IEnumerable <PersonDTO> >(json); foreach (var person in people) { if (person.name == null) { Console.WriteLine("Error: Invalid data."); } else { int?currentHomePlanetId = null; int?homePlanetId = GetPlanetId(person.homePlanet); if (homePlanetId != null) { currentHomePlanetId = homePlanetId; } var currentPerson = new Person() { Name = person.name, HomePlanetId = currentHomePlanetId, }; context.People.Add(currentPerson); Console.WriteLine("Successfully imported Person {0}.", person.name); } } context.SaveChanges(); }
public static void ExportAnomlaies() { var context = new MassDefectDatabaseContext(); var anomalies = context.Anomalies .Select(a => new { id = a.Id, OriginPlanet = a.OriginPlanetId, TeleportPlanet = a.TeleportPlanetId, a.Victims }) .ToList(); var anomaliesNode = new XElement("anomalies"); foreach (var anomaly in anomalies) { var anomalyNode = new XElement("anomaly"); anomalyNode.Add(new XAttribute("id", anomaly.id)); anomalyNode.Add(new XAttribute("teleport-planet", anomaly.OriginPlanet)); anomalyNode.Add(new XAttribute("origin-planet", anomaly.TeleportPlanet)); var victimsNode = new XElement("victims"); foreach (var victim in anomaly.Victims) { var victimNode = new XElement("victim"); victimNode.Add(new XAttribute("name", victim.Name)); victimsNode.Add(victimNode); } anomaliesNode.Add(anomalyNode); } anomaliesNode.Save(@"..\..\ExportData\anomalies.xml"); }
private static void ImportPersonToDatabase(PersonDto personDto) { if (personDto == null) { throw new ArgumentNullException("Person cannot be null!"); } else if (personDto.Name == null) { throw new ArgumentNullException("Person name cannot be null!"); } else if (personDto.HomePlanet == null) { throw new ArgumentNullException("Person home planet cannot be null!"); } using (var db = new MassDefectDatabaseContext()) { var homePlanet = db.Planets.FirstOrDefault(p => p.Name == personDto.HomePlanet); if (homePlanet == null) { throw new ArgumentNullException("Person home planet doesn't exist in dbo.Planets"); } var newPerson = new Person() { Name = personDto.Name, HomePlanet = homePlanet }; db.Persons.Add(newPerson); db.SaveChanges(); } }
static void Main() { var db = new MassDefectDatabaseContext(); ExportPlanetsWhichAreNotAnomalyOrigins(db); //ExportPeopleWhickHaveNotBeenVictims(db); //ExportTopAnomaly(db); }
private static Planet GetPlanetByName(string planetName, MassDefectDatabaseContext db) { if (planetName == null) { throw new ArgumentNullException("Planet name cannot be null!"); } return(db.Planets.FirstOrDefault(p => p.Name == planetName)); }
private static void ExportPlanetsWhichAreNotAnomalyOrigins(MassDefectDatabaseContext db) { var exportedPlanets = db.Planets .Where(p => !p.OriginAnomalies.Any()) .Select(p => new { name = p.Name }); var planetsAsJson = JsonConvert.SerializeObject(exportedPlanets, Formatting.Indented); File.WriteAllText(@"../../planets.json", planetsAsJson); }
private static int?GetPersonId(string name) { var context = new MassDefectDatabaseContext(); if (context.People.Any(p => p.Name == name)) { int id = context.People.First(s => s.Name == name).Id; return(id); } else { return(null); } }
private static void ExportPeopleWhickHaveNotBeenVictims(MassDefectDatabaseContext db) { var persons = db.Persons .Where(p => !p.Anomalies.Any()) .Select(p => new { name = p.Name, homePlanet = new { name = p.HomePlanet.Name } }); var peopleAsJson = JsonConvert.SerializeObject(persons, Formatting.Indented); File.WriteAllText(@"../../people.json", peopleAsJson); }
private static int?GetStarId(string name) { var context = new MassDefectDatabaseContext(); if (context.Stars.Any(s => s.Name == name)) { int id = context.Stars.First(s => s.Name == name).Id; return(id); } else { return(null); } }
private static void ExportTopAnomaly(MassDefectDatabaseContext db) { var anomaly = db.Anomalies .OrderByDescending(a => a.Victims.Count) .Select(a => new { id = a.Id, originPlanet = new { name = a.OriginPlanet.Name }, teleportPlanet = new { name = a.TeleportPlanet.Name }, victimsCount = a.Victims.Count }) .Take(1); var topAnomalyAsJson = JsonConvert.SerializeObject(anomaly, Formatting.Indented); File.WriteAllText(@"../../anomaly.json", topAnomalyAsJson); }
private static void ImportPlanetToDatabase(PlanetDto planetDto) { var db = new MassDefectDatabaseContext(); if (planetDto == null) { throw new ArgumentNullException("Planet cannot be null!"); } else if (planetDto.Name == null) { throw new ArgumentNullException("Planet name cannot be null!"); } else if (planetDto.Sun == null) { throw new ArgumentNullException("Planet sun cannot be null!"); } else if (planetDto.SolarSystem == null) { throw new ArgumentNullException("Planet solar system cannot be null!"); } var sun = db.Stars.FirstOrDefault(s => s.Name == planetDto.Sun); var solarSystem = db.SolarSystems.FirstOrDefault(s => s.Name == planetDto.SolarSystem); if (sun == null) { throw new ArgumentNullException("Sun doesn't exist in dbo.Stars"); } else if (solarSystem == null) { throw new ArgumentNullException("Solar system doesn't exist in dbo.SolarSystems"); } var newPlanet = new Planet() { Name = planetDto.Name, Sun = sun, SolarSystem = solarSystem }; db.Planets.Add(newPlanet); db.SaveChanges(); }
private static void ImportSolarSystemToDatabase(SolarSystemDto solarSystemDto) { if (solarSystemDto?.Name == null) { throw new ArgumentNullException("Name cannot be null!"); } SolarSystem newSolarSystem = new SolarSystem() { Name = solarSystemDto.Name }; using (var db = new MassDefectDatabaseContext()) { db.SolarSystems.Add(newSolarSystem); db.SaveChanges(); } }
private static void ImportVictim(XElement victimNode, MassDefectDatabaseContext db, Anomaly newAnomaly) { XAttribute name = victimNode.Attribute("name"); if (name == null) { throw new ArgumentNullException("There is no attribute for victim name in xml!"); } var person = GetPersonByName(name.Value, db); if (person == null) { throw new ArgumentNullException("There is no such person in dbo.Persons"); } newAnomaly.Victims.Add(person); }
private static void ImportAnomalyVictimToDatabase(AnomalyVictim anomalyVictim) { if (anomalyVictim.Person == null || anomalyVictim.Id == 0) { throw new ArgumentNullException("Person cannot be null and Id cannot be 0!"); } using (var db = new MassDefectDatabaseContext()) { var anomaly = db.Anomalies.FirstOrDefault(a => a.Id == anomalyVictim.Id); var victim = db.Persons.FirstOrDefault(p => p.Name == anomalyVictim.Person); if (anomaly != null && victim != null) { anomaly.Victims.Add(victim); db.SaveChanges(); } } }
public static void ImportPlanets() { var context = new MassDefectDatabaseContext(); var json = File.ReadAllText(@"..\..\Datasets\planets.json"); var planets = JsonConvert.DeserializeObject <IEnumerable <PlanetDTO> >(json); foreach (var planet in planets) { if (planet.name == null || context.Planets.Any(p => p.Name == planet.name)) { Console.WriteLine("Error: Invalid data."); } else { int?currentPlanetSolarSystemId = null; int?currentPlanetSunId = null; int?solarSystemId = GetSolarSystemId(planet.solarSystem); int?sunId = GetStarId(planet.sun); if (solarSystemId != null) { currentPlanetSolarSystemId = solarSystemId; } if (sunId != null) { currentPlanetSunId = sunId; } var currentPlanet = new Planet() { Name = planet.name, SolarSystemId = currentPlanetSolarSystemId, SunId = currentPlanetSunId }; context.Planets.Add(currentPlanet); Console.WriteLine("Successfully imported Planet {0}.", planet.name); } } context.SaveChanges(); }
static void Main() { var db = new MassDefectDatabaseContext(); var exportedAnomalies = db.Anomalies .Select(a => new { id = a.Id, originPlanetName = a.OriginPlanet.Name, teleportPlanetName = a.TeleportPlanet.Name, Persons = a.Victims.Select(v => v.Name) }) .OrderBy(a => a.id); var xmlDocument = new XElement("anomalies"); foreach (var anomaly in exportedAnomalies) { var anomalyNode = new XElement("anomaly"); anomalyNode.Add(new XAttribute("id", anomaly.id)); anomalyNode.Add(new XAttribute("origin-planet", anomaly.originPlanetName)); anomalyNode.Add(new XAttribute("teleport-planet", anomaly.teleportPlanetName)); var victimsNode = new XElement("victims"); foreach (var person in anomaly.Persons) { var personNode = new XElement("victim"); personNode.Add(new XAttribute("name", person)); victimsNode.Add(personNode); } anomalyNode.Add(victimsNode); xmlDocument.Add(anomalyNode); } xmlDocument.Save("../../anomalies.xml"); }
private static void ImportAnomalyAndVictims(XElement anomalyNode, MassDefectDatabaseContext db) { XAttribute originPlanetName = anomalyNode.Attribute("origin-planet"); XAttribute teleportPlanetName = anomalyNode.Attribute("teleport-planet"); if (originPlanetName == null || teleportPlanetName == null) { throw new ArgumentNullException("Origin and teleport planet cannot be null!"); } var originPlanet = GetPlanetByName(originPlanetName.Value, db); var teleportPlanet = GetPlanetByName(teleportPlanetName.Value, db); if (originPlanet == null || teleportPlanet == null) { throw new ArgumentNullException("Origin or teleport planet doesn't exist in dbo.Planets!"); } var newAnomaly = new Anomaly() { OriginPlanet = originPlanet, TeleportPlanet = teleportPlanet }; db.Anomalies.Add(newAnomaly); //Victims var victims = anomalyNode.XPathSelectElements("victims/victim"); foreach (var victim in victims) { ImportVictim(victim, db, newAnomaly); } db.SaveChanges(); }
public static void Main() { var inputXml = XDocument.Load(NewAnomaliesPath); var anomalies = inputXml.XPathSelectElements("/anomalies/anomaly"); var db = new MassDefectDatabaseContext(); foreach (XElement anomaly in anomalies) { try { ImportAnomalyAndVictims(anomaly, db); Console.WriteLine($"Successfully imported anomaly."); } catch (ArgumentNullException) { Console.WriteLine($"Error: Invalid data."); } catch (DbEntityValidationException dbex) { Console.WriteLine(dbex.InnerException); } } }
public static void ImportSolarSystems() { var context = new MassDefectDatabaseContext(); var json = File.ReadAllText(@"..\..\Datasets\solar-systems.json"); var solarSystems = JsonConvert.DeserializeObject <IEnumerable <SolarSystemDTO> >(json); foreach (var solarSystem in solarSystems) { if (solarSystem.name == null || context.SolarSystems.Any(s => s.Name == solarSystem.name)) { Console.WriteLine("Error: Invalid data."); } else { var currentSolarSystem = new SolarSystem() { Name = solarSystem.name }; context.SolarSystems.Add(currentSolarSystem); Console.WriteLine("Successfully imported Solar System {0}.", solarSystem.name); } } context.SaveChanges(); }
private static Person GetPersonByName(string personName, MassDefectDatabaseContext db) { return(db.Persons.FirstOrDefault(p => p.Name == personName)); }
public static void Main() { var db = new MassDefectDatabaseContext(); db.Database.Initialize(true); }