Exemplo n.º 1
0
        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();
            }
        }