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(); }
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(); }