Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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();
            }
        }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
        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");
        }
Ejemplo n.º 8
0
        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();
            }
        }
Ejemplo n.º 9
0
        static void Main()
        {
            var db = new MassDefectDatabaseContext();

            ExportPlanetsWhichAreNotAnomalyOrigins(db);
            //ExportPeopleWhickHaveNotBeenVictims(db);
            //ExportTopAnomaly(db);
        }
Ejemplo n.º 10
0
        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));
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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);
            }
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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);
            }
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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();
        }
Ejemplo n.º 17
0
        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();
            }
        }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 19
0
        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();
                }
            }
        }
Ejemplo n.º 20
0
        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();
        }
Ejemplo n.º 21
0
        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");
        }
Ejemplo n.º 22
0
        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();
        }
Ejemplo n.º 23
0
        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);
                }
            }
        }
Ejemplo n.º 24
0
        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();
        }
Ejemplo n.º 25
0
 private static Person GetPersonByName(string personName, MassDefectDatabaseContext db)
 {
     return(db.Persons.FirstOrDefault(p => p.Name == personName));
 }
Ejemplo n.º 26
0
        public static void Main()
        {
            var db = new MassDefectDatabaseContext();

            db.Database.Initialize(true);
        }