Пример #1
0
        public static void ImportPlanets()
        {
            using (var context = new MassDefectContext())
            {
                var json = File.ReadAllText(@"..\..\..\MassDefect.Data\Import\planets.json");

                List <PlanetDTO> planetsDTO = new List <PlanetDTO>();

                planetsDTO = JsonConvert.DeserializeObject <List <PlanetDTO> >(json);

                List <Planet> planets = new List <Planet>();

                StringBuilder sb = new StringBuilder();

                foreach (var p in planetsDTO)
                {
                    if (p.Name != null && p.SolarSystem != null && p.Sun != null)
                    {
                        if (SolarSystemExists(p.SolarSystem) && StarExists(p.Sun))
                        {
                            Planet planet = new Planet
                            {
                                Name        = p.Name,
                                SolarSystem = GetSolarSystemByName(p.SolarSystem, context),
                                Sun         = GetStarByName(p.Sun, context)
                            };

                            planets.Add(planet);
                            sb.AppendLine($"Successfully imported Planet {p.Name}");
                        }
                        else
                        {
                            sb.AppendLine("Error: Invalid data.");
                        }
                    }
                    else
                    {
                        sb.AppendLine("Error: Invalid data.");
                    }
                }

                context.Planets.AddRange(planets);
                context.SaveChanges();

                Console.WriteLine(sb.ToString());
            }
        }
Пример #2
0
        public static void ImportPeople()
        {
            using (var context = new MassDefectContext())
            {
                var json = File.ReadAllText(@"..\..\..\MassDefect.Data\Import\persons.json");

                List <PersonDTO> peopleDTO = new List <PersonDTO>();

                peopleDTO = JsonConvert.DeserializeObject <List <PersonDTO> >(json);

                List <Person> people = new List <Person>();

                StringBuilder sb = new StringBuilder();

                foreach (var p in peopleDTO)
                {
                    if (p.Name != null && p.HomePlanet != null)
                    {
                        if (PlanetExists(p.HomePlanet))
                        {
                            Person person = new Person
                            {
                                Name       = p.Name,
                                HomePlanet = GetPlanetByName(p.HomePlanet, context)
                            };

                            people.Add(person);
                            sb.AppendLine($"Successfully imported Person {p.Name}");
                        }
                        else
                        {
                            sb.AppendLine("Error: Invalid data.");
                        }
                    }
                    else
                    {
                        sb.AppendLine("Error: Invalid data.");
                    }
                }

                context.People.AddRange(people);
                context.SaveChanges();

                Console.WriteLine(sb.ToString());
            }
        }
Пример #3
0
        public static void ImportAnomalies()
        {
            using (var context = new MassDefectContext())
            {
                var json = File.ReadAllText(@"..\..\..\MassDefect.Data\Import\anomalies.json");

                List <AnomalyDTO> anomaliesDTO = new List <AnomalyDTO>();

                anomaliesDTO = JsonConvert.DeserializeObject <List <AnomalyDTO> >(json);

                List <Anomaly> anomalies = new List <Anomaly>();

                StringBuilder sb = new StringBuilder();

                foreach (var a in anomaliesDTO)
                {
                    if (a.OriginPlanet != null && a.TeleportPlanet != null)
                    {
                        if (PlanetExists(a.OriginPlanet) && PlanetExists(a.TeleportPlanet))
                        {
                            Anomaly anomaly = new Anomaly
                            {
                                OriginPlanet   = GetPlanetByName(a.OriginPlanet, context),
                                TeleportPlanet = GetPlanetByName(a.TeleportPlanet, context)
                            };

                            anomalies.Add(anomaly);
                            sb.AppendLine($"Successfully imported Anomaly from {anomaly.OriginPlanet.Name} to {anomaly.TeleportPlanet.Name}");
                        }
                        else
                        {
                            sb.AppendLine("Error: Invalid data.");
                        }
                    }
                    else
                    {
                        sb.AppendLine("Error: Invalid data.");
                    }
                }

                context.Anomalies.AddRange(anomalies);
                context.SaveChanges();

                Console.WriteLine(sb.ToString());
            }
        }
Пример #4
0
        public static void ImportStars()
        {
            using (var context = new MassDefectContext())
            {
                var json = File.ReadAllText(@"..\..\..\MassDefect.Data\Import\stars.json");

                List <StarDTO> starsDTO = new List <StarDTO>();

                starsDTO = JsonConvert.DeserializeObject <List <StarDTO> >(json);

                List <Star> stars = new List <Star>();

                StringBuilder sb = new StringBuilder();

                foreach (var s in starsDTO)
                {
                    if (s.Name != null && s.SolarSystem != null)
                    {
                        if (SolarSystemExists(s.SolarSystem))
                        {
                            Star star = new Star
                            {
                                Name        = s.Name,
                                SolarSystem = GetSolarSystemByName(s.SolarSystem, context)
                            };

                            stars.Add(star);
                            sb.AppendLine($"Successfully imported Star {s.Name}");
                        }
                        else
                        {
                            sb.AppendLine("Error: Invalid data.");
                        }
                    }
                    else
                    {
                        sb.AppendLine("Error: Invalid data.");
                    }
                }

                context.Stars.AddRange(stars);
                context.SaveChanges();

                Console.WriteLine(sb.ToString());
            }
        }
Пример #5
0
        public static void ExportAnomalies()
        {
            using (var context = new MassDefectContext())
            {
                var anomalies = context.Anomalies
                                .Select(a => new
                {
                    Id             = a.Id,
                    OriginPlanet   = a.OriginPlanet.Name,
                    TeleportPlanet = a.TeleportPlanet.Name,
                    Victims        = a.Victims.Select(v => v.Name)
                })
                                .OrderBy(o => o.Id)
                                .ToList();

                var xml = new XElement("anomalies");

                foreach (var a in anomalies)
                {
                    var anomalyNode = new XElement("anomaly");
                    anomalyNode.Add(new XAttribute("id", a.Id));
                    anomalyNode.Add(new XAttribute("origin-planet", a.OriginPlanet));
                    anomalyNode.Add(new XAttribute("teleport-planet", a.TeleportPlanet));
                    var victimsNode = new XElement("victims");
                    foreach (var name in a.Victims)
                    {
                        var victimEle = new XElement("victim");
                        victimEle.Add(new XAttribute("name", name));

                        victimsNode.Add(victimEle);
                    }
                    anomalyNode.Add(victimsNode);

                    xml.Add(anomalyNode);
                }


                xml.Save(@"..\..\..\MassDefect.Data\Export\anomalies.xml");
            }
        }
Пример #6
0
        public static void ExportPlanets()
        {
            using (var context = new MassDefectContext())
            {
                var planets = context.Planets
                              .Where(p => !p.OriginatingAnomalies.Any())
                              .Select(p => new
                {
                    Name = p.Name
                }).ToList();

                JsonSerializerSettings settings = new JsonSerializerSettings
                {
                    Formatting       = Formatting.Indented,
                    ContractResolver = new CamelCasePropertyNamesContractResolver()
                };

                var json = JsonConvert.SerializeObject(planets, settings);

                File.WriteAllText(@"..\..\..\MassDefect.Data\Export\planets.json", json);
            }
        }
Пример #7
0
 public GenericDbRepository(MassDefectContext dbContext)
 {
     this.dbContext = dbContext;
     this.dbSet     = this.dbContext.Set <TEntity>();
 }
Пример #8
0
 public GenericDbUnitOfWork()
 {
     this.dbContext  = new MassDefectContext();
     this.isDisposed = false;
 }
Пример #9
0
 public static Anomaly GetAnomalyByPlanetsId(MassDefectContext context, int originPlanetId, int teleportPlanetId)
 {
     return(context.Anomalies
            .FirstOrDefault(a => a.OriginPlanetId == originPlanetId &&
                            a.TeleportPlanetId == teleportPlanetId));
 }
Пример #10
0
 public static SolarSystem GetSolarSystemByName(MassDefectContext context, string name)
 {
     return(context.SolarSystems.FirstOrDefault(s => s.Name == name));
 }
Пример #11
0
 public static Person GetPersonByName(MassDefectContext context, string name)
 {
     return(context.Persons.FirstOrDefault(p => p.Name == name));
 }
Пример #12
0
 public static Anomaly GetAnomalyById(MassDefectContext context, int id)
 {
     return(context.Anomalies.FirstOrDefault(a => a.Id == id));
 }
Пример #13
0
 public static Star GetSunByName(MassDefectContext context, string name)
 {
     return(context.Stars.FirstOrDefault(s => s.Name == name));
 }
Пример #14
0
 public static Planet GetPlanetByName(MassDefectContext context, string name)
 {
     return(context.Planets.FirstOrDefault(p => p.Name == name));
 }
Пример #15
0
 private static Person GetPersonByName(string personName, MassDefectContext context)
 {
     return(context.People.FirstOrDefault(p => p.Name == personName));
 }
Пример #16
0
 private static Anomaly GetAnomalyById(int id, MassDefectContext context)
 {
     return(context.Anomalies.FirstOrDefault(a => a.Id == id));
 }
Пример #17
0
 private static SolarSystem GetSolarSystemByName(string solarSystem, MassDefectContext context)
 {
     return(context.SolarSystems.FirstOrDefault(ss => ss.Name == solarSystem));
 }
Пример #18
0
 private static Planet GetPlanetByName(string planetName, MassDefectContext context)
 {
     return(context.Planets.FirstOrDefault(p => p.Name == planetName));
 }
Пример #19
0
 private static Star GetStarByName(string starName, MassDefectContext context)
 {
     return(context.Stars.FirstOrDefault(s => s.Name == starName));
 }