Пример #1
0
        private static void ImportActivityTypes()
        {
            var context       = new DossierContext();
            var json          = File.ReadAllText("../../data/activity-types.json");
            var activityTypes = JsonConvert.DeserializeObject <IEnumerable <ActivityTypeDTO> >(json);

            foreach (var type in activityTypes)
            {
                context.ActivityTypes.Add(new ActivityType()
                {
                    Name = type.Name
                });
            }

            context.SaveChanges();
        }
Пример #2
0
        private static void ImportCities()
        {
            var context = new DossierContext();
            var xml     = XDocument.Load("../../data/cities.xml");
            var cities  = xml.XPathSelectElements("cities/city");

            foreach (var city in cities)
            {
                var cityName = city.Attribute("name").Value;
                context.Cities.Add(new City()
                {
                    Name = cityName
                });
            }

            context.SaveChanges();
        }
Пример #3
0
        private static void ImportIndividuals()
        {
            var context     = new DossierContext();
            var json        = File.ReadAllText("../../data/individuals.json");
            var individuals = JsonConvert.DeserializeObject <IEnumerable <IndividualDTO> >(
                json, new IsoDateTimeConverter {
                DateTimeFormat = "dd/MM/yyyy"
            });

            foreach (var individual in individuals)
            {
                var exists = context.Individuals.Any(i => i.Id == individual.Id);
                if (exists)
                {
                    Console.WriteLine("{0} is already present in the database.",
                                      individual.FullName);
                    continue;
                }

                var individualEntity = new Individual
                {
                    Id       = individual.Id,
                    FullName = individual.FullName,
                    Alias    = individual.Alias,
                    Status   = individual.Status,
                };

                if (individual.BirthDate.HasValue)
                {
                    individualEntity.BirthDate = individual.BirthDate.Value;
                }

                foreach (var activityDto in individual.Activities)
                {
                    var activity = new Activity
                    {
                        Description    = activityDto.Description,
                        ActiveFrom     = activityDto.ActiveFrom,
                        ActivityTypeId = activityTypeIds[activityDto.ActivityType],
                        IndividualId   = individualEntity.Id
                    };

                    if (activityDto.ActiveTo.HasValue)
                    {
                        activity.ActiveTo = activityDto.ActiveTo.Value;
                    }

                    individualEntity.Activities.Add(activity);
                }

                foreach (var locationDto in individual.Locations)
                {
                    var location = new Location
                    {
                        CityId       = citiesIds[locationDto.City],
                        LastSeen     = locationDto.LastSeen,
                        IndividualId = individualEntity.Id
                    };

                    individualEntity.Locations.Add(location);
                }

                context.Individuals.Add(individualEntity);
                context.SaveChanges();
                Console.WriteLine("Successfully imported data for {0}",
                                  individual.FullName);
            }
        }