public void ExportStreams() { using (var context = new MinnesotaShapeDataContext()) using (var troutDashContext = new TroutDashPrototypeContext()) { Console.WriteLine("Deleting all streams in Minnesota"); var minnesota = troutDashContext.states.Single(s => s.short_name == "MN"); minnesota.streams.ToList().ForEach(s => troutDashContext.streams.Remove(s)); troutDashContext.SaveChanges(); _sequenceRestarter.RestartSequence("stream_gid_seq"); _sequenceRestarter.RestartSequence("trout_stream_section_gid_seq"); Console.WriteLine("Deleted all streams in Minnesota"); // gather ye trout streams. ILookup <string, trout_streams_minnesota> troutStreamSectionIds = context.trout_streams_minnesota.Where(ts => ts.trout_flag == 1).ToLookup(tss => tss.kittle_nbr); var badList = new List <trout_streams_minnesota>(); troutStreamSectionIds.AsParallel().ForAll(section => SaveStream(section, minnesota.Name, minnesota.gid, badList)); Console.WriteLine("Failures: "); badList.ForEach(b => Console.WriteLine(b.kittle_nam + " " + b.kittle_nbr)); troutDashContext.SaveChanges(); } using (var troutDashContext = new TroutDashPrototypeContext()) { var minnesota = troutDashContext.states.Single(s => s.short_name == "MN"); Console.WriteLine("Saving Metadata for stream... "); using (var writer = File.OpenText(StreamMetadataFileLocation)) { var csv = new CsvReader(writer); while (csv.Read()) { var record = csv.GetRecord <StreamSpeciesCsv>(); var id = record.Id; try { var stream = minnesota.streams.FirstOrDefault(s => s.source == id); if (stream == null) { continue; } Console.WriteLine(" " + stream.name + " | " + stream.source); stream.has_brook_trout = record.IsBrook ?? false; stream.has_brown_trout = record.IsBrown ?? false; stream.has_rainbow_trout = record.IsRainbow ?? false; stream.is_brook_trout_stocked = record.IsBrookStocked ?? false; stream.is_brown_trout_stocked = record.IsBrownStocked ?? false; stream.is_rainbow_trout_stocked = record.IsRainbowStocked ?? false; stream.status_mes = record.Status ?? String.Empty; stream.local_name = record.AltName ?? String.Empty; troutDashContext.SaveChanges(); } catch { throw; } } } Console.WriteLine("updating stream centroids..."); _centroidResetter.RestartSequence(); } }