private static void ImportAnomalyVictims() { var context = new MassDefectDB(); var json = File.ReadAllText(AnomalyVictimsPath); var anomalyVictims = JsonConvert.DeserializeObject <IEnumerable <AnomayVictimsDTO> >(json); foreach (var av in anomalyVictims) { if (av.Id == null || av.Person == null) { Console.WriteLine(Constants.ImportErrorMessage); continue; } var anomalyEntity = context.Anomalies.FirstOrDefault(a => a.Id == av.Id.Value); var personEntity = context.Persons.FirstOrDefault(p => p.Name == av.Person); if (anomalyEntity == null || personEntity == null) { Console.WriteLine(Constants.ImportErrorMessage); continue; } anomalyEntity.Victims.Add(personEntity); Console.WriteLine("success!!!"); } context.SaveChanges(); }
/// Softuni solution //private static Star GetStarByName(string starName, MassDefectContext context) //{ // foreach (var star in context.Stars) // { // if (star.Name == starName) // { // return star; // } // } // return null; //} private static void ImportStars() { var context = new MassDefectDB(); var json = File.ReadAllText(StarsPath); var stars = JsonConvert.DeserializeObject <IEnumerable <StarDTO> >(json); foreach (var star in stars) { if (star.Name == null || star.SolarSystem == null) { Console.WriteLine(Constants.ImportErrorMessage); continue; } var starEntity = new Star { Name = star.Name, SolarSystem = context.SolarSystems.FirstOrDefault(s => s.Name == star.Name) }; if (star.SolarSystem == null) { Console.WriteLine(Constants.ImportErrorMessage); continue; } context.Stars.Add(starEntity); Console.WriteLine(Constants.ImportNamedEntitySuccessMessage, "Star", starEntity.Name); } context.SaveChanges(); }
private static void ImportPlanets() { var context = new MassDefectDB(); var json = File.ReadAllText(PlanetsPath); var planets = JsonConvert.DeserializeObject <IEnumerable <PlanetDTO> >(json); foreach (var planet in planets) { if (planet.Name == null || planet.SolarSystem == null || planet.Sun == null) { Console.WriteLine(Constants.ImportErrorMessage); continue; } var planetEntity = new Planet { Name = planet.Name, Sun = context.Stars.FirstOrDefault(s => s.Name == planet.Sun), SolarSystem = context.SolarSystems.FirstOrDefault(ss => ss.Name == planet.SolarSystem) }; if (planetEntity.Sun == null || planetEntity.SolarSystem == null) { Console.WriteLine(Constants.ImportErrorMessage); continue; } context.Planets.Add(planetEntity); Console.WriteLine(Constants.ImportNamedEntitySuccessMessage, "Planets", planetEntity.Name); } context.SaveChanges(); }
private static void ImportPersons() { var context = new MassDefectDB(); var json = File.ReadAllText(PersonsPath); var persons = JsonConvert.DeserializeObject <IEnumerable <PersonDTO> >(json); foreach (var person in persons) { if (person.Name == null || person.HomePlanet == null) { Console.WriteLine(Constants.ImportErrorMessage); continue; } var personEntity = new Person { Name = person.Name, HomePlanet = context.Planets.FirstOrDefault(p => p.Name == person.HomePlanet) }; if (personEntity.HomePlanet == null) { Console.WriteLine(Constants.ImportErrorMessage); continue; } context.Persons.Add(personEntity); Console.WriteLine(Constants.ImportNamedEntitySuccessMessage, "Person", personEntity.Name); } context.SaveChanges(); }
public static void Main(string[] args) { var context = new MassDefectDB(); ExportPlantesWichAreNotAnomalyOrigins(context); ExportPeopleWhichHaveNotBeenVictims(context); ExportTopAnomaly(context); }
private static void ExportPlantesWichAreNotAnomalyOrigins(MassDefectDB context) { var exportedPlanets = context.Planets .Where(p => p.OriginAnomalies.Count == 0) // !p.OriginAnomalies.Any() .Select(p => new { name = p.Name }); var planetsAsJson = JsonConvert.SerializeObject(exportedPlanets, Formatting.Indented); File.WriteAllText("planets.json", planetsAsJson); }
private static void ImportAnomalies() { var context = new MassDefectDB(); var json = File.ReadAllText(AnomaliesPath); var anomalies = JsonConvert.DeserializeObject <IEnumerable <AnomalyDTO> >(json); foreach (var anomaly in anomalies) { if (anomaly.OriginPlanet == null || anomaly.TeleportPlanet == null) { Console.WriteLine(Constants.ImportErrorMessage); continue; } // Neno //var anomalyEntity = new Anomaly(); //var an = context.Anomalies.FirstOrDefault(a => a.OriginPlanet.Name == anomaly.OriginPlanet); //if (an != null) //{ // anomalyEntity.OriginPlanet = an.OriginPlanet; // anomalyEntity.TeleportPlanet = an.TeleportPlanet; //} var anomalyEntity = new Anomaly(); var originAnomaly = context.Anomalies.FirstOrDefault(a => a.OriginPlanet.Name == anomaly.OriginPlanet); var teleportPlanetAnomaly = context.Anomalies.FirstOrDefault(t => t.TeleportPlanet.Name == anomaly.TeleportPlanet); if (originAnomaly != null) { anomalyEntity.OriginPlanet = originAnomaly.OriginPlanet; } if (teleportPlanetAnomaly != null) { anomalyEntity.TeleportPlanet = teleportPlanetAnomaly.TeleportPlanet; } if (anomalyEntity.OriginPlanet == null || anomalyEntity.TeleportPlanet == null) { Console.WriteLine(Constants.ImportErrorMessage); continue; } context.Anomalies.Add(anomalyEntity); Console.WriteLine(Constants.ImportUnnamedEntitySuccessMessage); } context.SaveChanges(); }
public static void Main(string[] args) { var xml = XDocument.Load(NewAnomaliesPath); var anomalyNodes = xml.XPathSelectElements("anomalies/anomaly"); var context = new MassDefectDB(); var anomalyEntity = new Anomaly(); foreach (var anomalyNode in anomalyNodes) { var originPlanetName = anomalyNode.Attribute("origin-planet"); var teleportPlanetName = anomalyNode.Attribute("teleport-planet"); if (originPlanetName == null || teleportPlanetName == null) { Console.WriteLine(Constants.ImportErrorMessage); continue; } else { anomalyEntity.OriginPlanet = context.Planets.FirstOrDefault(p => p.Name == originPlanetName.Value); anomalyEntity.TeleportPlanet = context.Planets.FirstOrDefault(tp => tp.Name == teleportPlanetName.Value); } //var anomalyEntity = new Anomaly //{ // OriginPlanet = context.Planets.FirstOrDefault(p => p.Name == originPlanetName.Value), // TeleportPlanet = context.Planets.FirstOrDefault(tp => tp.Name == teleportPlanetName.Value) //}; if (anomalyEntity.OriginPlanet == null || anomalyEntity.TeleportPlanet == null) { Console.WriteLine(Constants.ImportErrorMessage); continue; } context.Anomalies.Add(anomalyEntity); Console.WriteLine(Constants.ImportUnnamedEntitySuccessMessage); var victimsNodes = anomalyNode.XPathSelectElements("victims/victim"); foreach (var victimNode in victimsNodes) { ImportVictims(victimNode, context, anomalyEntity); } context.SaveChanges(); } }
private static void ExportPeopleWhichHaveNotBeenVictims(MassDefectDB context) { var peopleToExport = context.Persons .Where(p => !p.Anomalies.Any()) .Select(p => new { name = p.Name, homePlanet = new { name = p.HomePlanet.Name } }); var personsAsJson = JsonConvert.SerializeObject(peopleToExport, Formatting.Indented); File.WriteAllText("people.json", personsAsJson); }
private static void ImportVictims(XElement victimNode, MassDefectDB context, Anomaly anomaly) { var victimNameAttr = victimNode.Attribute("name"); if (victimNameAttr == null) { Console.WriteLine(Constants.ImportErrorMessage); return; } var personEntity = context.Persons.FirstOrDefault(p => p.Name == victimNameAttr.Value); if (personEntity == null) { Console.WriteLine(Constants.ImportErrorMessage); return; } anomaly.Victims.Add(personEntity); }
private static void ExportTopAnomaly(MassDefectDB context) { var topAnomaly = context.Anomalies .OrderByDescending(a => a.Victims.Count) .Select(a => new { a.Id, originPlanet = new { a.OriginPlanet.Name }, teleportPlanet = new { a.TeleportPlanet.Name }, victimsCount = a.Victims.Count }); var anomaliesAsJson = JsonConvert.SerializeObject(topAnomaly, Formatting.Indented); File.WriteAllText("anomalies.json", anomaliesAsJson); }
private static void ImportSolarSystems() { var context = new MassDefectDB(); var json = File.ReadAllText(SolarSystemPath); var solarSystems = JsonConvert.DeserializeObject <IEnumerable <SolarSystemDTO> >(json); foreach (var solarSystem in solarSystems) { if (solarSystem.Name == null) { Console.WriteLine(Constants.ImportErrorMessage); continue; } var solarSystemEntity = new SolarSystem { Name = solarSystem.Name }; context.SolarSystems.Add(solarSystemEntity); Console.WriteLine(Constants.ImportNamedEntitySuccessMessage, "Solar System", solarSystemEntity.Name); } context.SaveChanges(); }
public static void Main(string[] args) { var context = new MassDefectDB(); var exportedAnomalies = context.Anomalies .Select(a => new { id = a.Id, originPlanet = a.OriginPlanet.Name, teleportPlanet = a.TeleportPlanet.Name, victims = a.Victims.Select(v => v.Name) }) .OrderBy(a => a.id); var xmlDocument = new XElement("anomalies"); foreach (var exportedAnomaly in exportedAnomalies) { var anomalyNode = new XElement("anomaly"); anomalyNode.Add(new XAttribute("id", exportedAnomaly.id)); anomalyNode.Add(new XAttribute("origin-planet", exportedAnomaly.originPlanet)); anomalyNode.Add(new XAttribute("teleport-planet", exportedAnomaly.teleportPlanet)); var victimsNode = new XElement("victims"); foreach (var v in exportedAnomaly.victims) { var victimNode = new XElement("victim"); victimNode.Add(new XAttribute("name", v)); victimsNode.Add(victimNode); } anomalyNode.Add(victimsNode); xmlDocument.Add(anomalyNode); } xmlDocument.Save("../../anomalies.xml"); }