コード例 #1
0
        private void SeedWroldHeritage()
        {
            XmlSerializer deserializer = new XmlSerializer(typeof(Rows));
            TextReader    textReader   = new StreamReader(@"C:/Users/micha/source/Repository/TripWMe/TripWMe/TripWMe.Data/SampleData/WorldHeritage.xml");
            Rows          worldHeritage;

            worldHeritage = (Rows)deserializer.Deserialize(textReader);

            var worldHeritageList    = new List <WorldHeritage>();
            var listOfLinkedEntities = new List <WorldHeritageCountry>();

            foreach (var item in worldHeritage.Row)
            {
                var listOfCountries = item.Iso_code.ToUpper().Split(',').ToList();

                var newWorldHeritage = new WorldHeritage()
                {
                    UnescoId  = item.Id_number,
                    ImageUrl  = item.Image_url,
                    IsoCodes  = item.Iso_code,
                    Latitude  = item.Latitude,
                    Longitude = item.Longitude,
                    Location  = item.Location,
                    Region    = item.Region
                };

                var listOfCountriesFromDb = new List <Country>();

                foreach (var country in listOfCountries)
                {
                    var countryFromDb = _context.Country.Where(c => c.Alpha2Code == country).FirstOrDefault();

                    if (countryFromDb != null)
                    {
                        listOfCountriesFromDb.Add(countryFromDb);

                        if (listOfCountries.Count() == listOfCountriesFromDb.Count())
                        {
                            foreach (var countryToIclude in listOfCountriesFromDb)
                            {
                                listOfLinkedEntities.Add(new WorldHeritageCountry {
                                    Country = countryToIclude, WorldHeritage = newWorldHeritage
                                });
                            }
                        }
                    }
                }

                worldHeritageList.Add(newWorldHeritage);
            }

            _context.AddRange(worldHeritageList);
            _context.AddRange(listOfLinkedEntities);
            _context.SaveChanges();

            textReader.Close();
        }
コード例 #2
0
        private void SeedWroldHeritage()
        {
            if (_context.WorldHeritage.Any())
            {
                return;
            }

            XmlSerializer deserializer = new XmlSerializer(typeof(Rows));

            var worldHeritageFilePath = Path.Combine(AppContext.BaseDirectory, "LoadData\\WorldHeritage.xml");

            TextReader textReader = new StreamReader(worldHeritageFilePath);
            Rows       worldHeritage;

            worldHeritage = (Rows)deserializer.Deserialize(textReader);

            var worldHeritageList    = new List <WorldHeritage>();
            var listOfLinkedEntities = new List <WorldHeritageCountry>();

            foreach (var item in worldHeritage.Row)
            {
                var listOfCountries = item.Iso_code.ToUpper(CultureInfo.CurrentCulture).Split(',').ToList();

                var newWorldHeritage = new WorldHeritage()
                {
                    UnescoId  = item.Id_number,
                    ImageUrl  = item.Image_url,
                    IsoCodes  = item.Iso_code,
                    Latitude  = item.Latitude,
                    Longitude = item.Longitude,
                    Location  = item.Location,
                    Region    = item.Region
                };

                var listOfCountriesFromDb = new List <Country>();

                foreach (var country in listOfCountries)
                {
                    var countryFromDb = _context.Country.Where(c => c.Alpha2Code == country).FirstOrDefault();

                    if (countryFromDb != null)
                    {
                        listOfCountriesFromDb.Add(countryFromDb);

                        if (listOfCountries.Count == listOfCountriesFromDb.Count)
                        {
                            foreach (var countryToIclude in listOfCountriesFromDb)
                            {
                                listOfLinkedEntities.Add(new WorldHeritageCountry {
                                    Country = countryToIclude, WorldHeritage = newWorldHeritage
                                });
                            }
                        }
                    }
                }

                worldHeritageList.Add(newWorldHeritage);
            }

            _context.AddRange(worldHeritageList);
            _context.AddRange(listOfLinkedEntities);
            _context.SaveChanges();

            textReader.Close();
        }