SpeciesRecords LoadRecords(String query, List <int> filteredSpecies) { int prevTransect = -1; bool speciesInTransect = true; SpeciesRepItem prevItem = null; SpeciesRecords records = new SpeciesRecords(); using (SqlConnection connection = new SqlConnection(DataSources.dbConSpecies)) { connection.Open(); using (SqlCommand command = new SqlCommand(query, connection)) { using (SqlDataReader set = command.ExecuteReader()) { while (set.Read()) { int fStationID = (int)set["fStationID"]; DateTime date = (DateTime)set["fStartDate"]; DateTime time1 = new DateTime(2010, 1, 1, 12, 0, 0); DateTime time2 = new DateTime(2010, 1, 1, 12, 0, 0); if (transects.ContainsKey(fStationID) == false) { Transect tr = new Transect(); tr.Date = String.Format("{0}-{1}-{2}", date.Year, date.Month.ToString("D2"), date.Day.ToString("D2")); tr.StartTime = String.Format("{0}:{1}:{2}", time1.Hour.ToString("D2"), time1.Minute.ToString("D2"), time1.Second.ToString("D2")); tr.EndTime = String.Format("{0}:{1}:{2}", time2.Hour.ToString("D2"), time2.Minute.ToString("D2"), time2.Second.ToString("D2")); tr.StartLat = set["fStartLat"].ToString(); tr.StartLong = set["fStartLng"].ToString(); tr.EndLat = set["fEndLat"].ToString(); tr.EndLong = set["fEndLng"].ToString(); tr.Cruise = set["fSurveyLabel"].ToString(); tr.transect = set["fLevel3Name"].ToString(); transects[fStationID] = tr; } Transect trans = transects[fStationID]; int speciesID = (int)set["fSpeciesID"]; if (filteredSpecies == null || filteredSpecies.Contains(speciesID)) { String speciesName = set["fCommonName"].ToString(); species[speciesName] = speciesID; if (trans.counts.ContainsKey(speciesID) == false) { trans.counts[speciesID] = new TCount(); } TCount tc = trans.counts[speciesID]; if (set["fOccurance"] != DBNull.Value) { int flying = (int)set["fOccurance"]; if (tc.flying == "") { tc.flying = "0"; } tc.flying = (int.Parse(tc.flying) + flying).ToString(); } } if (prevTransect != fStationID) { if (speciesInTransect == false) { if (filteredSpecies != null && prevItem != null) { // add null species record prevItem.commonName = "None observed"; prevItem.scientName = "None observed"; prevItem.flying = 0; prevItem.sitting = 0; records.records.Add(prevItem); } } prevTransect = fStationID; speciesInTransect = false; } SpeciesRepItem item = new SpeciesRepItem(); item.species = (int)set["fSpeciesID"]; item.commonName = set["fCommonName"].ToString(); item.scientName = set["fSpeciesName"].ToString(); item.flying = (int)set["fOccurance"]; DateTime time = new DateTime(2010, 1, 1, 12, 0, 0); item.date = new DateTime(date.Year, date.Month, date.Day, time.Hour, time.Minute, time.Second); item.startLat = (double)set["fStartLat"]; item.startLng = (double)set["fStartLng"]; item.endLat = set["fEndLat"].ToString(); item.endLng = set["fEndLng"].ToString(); item.LatitudeEnd = set["fEndLat"].ToString(); item.LongitudeEnd = set["fEndLng"].ToString(); if (filteredSpecies == null || filteredSpecies.Contains(item.species)) { speciesInTransect = true; records.records.Add(item); } prevItem = item; } } } } if (speciesInTransect == false) { if (filteredSpecies != null && prevItem != null) { // add null species record prevItem.commonName = "None observed"; prevItem.scientName = "None observed"; prevItem.flying = 0; prevItem.sitting = 0; records.records.Add(prevItem); } } return(records); }
public void WriteCSVFile() { String seperator = Request["seperator"].Trim(); String header = "Date,Survey,Trawl,Start Lat,Start Long, End Lat, End Long,"; foreach (String s in species.Keys) { header += CSVString(s) + ","; } header = header.Replace(",", seperator); Response.Write(header + "\r\n"); foreach (int key in transects.Keys) { Transect tr = transects[key]; Response.Write(CSVString(tr.Date) + seperator); // Response.Write(CSVString(tr.StartTime) + seperator); // Response.Write(CSVString(tr.EndTime) + seperator); Response.Write(CSVString(tr.Cruise) + seperator); Response.Write(CSVString(tr.transect) + seperator); Response.Write(CSVString(tr.StartLat) + seperator); Response.Write(CSVString(tr.StartLong) + seperator); Response.Write(CSVString(tr.EndLat) + seperator); Response.Write(CSVString(tr.EndLong) + seperator); foreach (String sp in species.Keys) { int speciesID = species[sp]; if (tr.counts.ContainsKey(speciesID)) { TCount tc = tr.counts[speciesID]; Response.Write(tc.flying + seperator); } else { Response.Write(seperator); } } Response.Write("\r\n"); } /* * foreach (DateTime date in master.Keys) * { * SpeciesRecords recs = master[date]; * foreach (SpeciesRepItem item in recs.records) * { * Response.Write(date.ToString("yyyy-MM-dd") + seperator); * Response.Write(date.ToString("HH:mm:ss") + seperator); * * Response.Write(CSVString(item.Taxonomic_Genus) + seperator); * Response.Write(CSVString(item.Taxonomic_Species) + seperator); * * Response.Write(CSVString(item.English_Genus) + seperator); * Response.Write(CSVString(item.English_Species) + seperator); * * Response.Write(CSVString(item.Taxon_order) + seperator); * Response.Write(CSVString(item.Taxon_family) + seperator); * Response.Write(CSVString(item.Taxon_group) + seperator); * Response.Write(CSVString(item.Continent) + seperator); * Response.Write(CSVString(item.Region) + seperator); * * Response.Write(CSVString(item.flying.ToString()) + seperator); * Response.Write(CSVString(item.sitting.ToString()) + seperator); * Response.Write(CSVString(item.observer1) + seperator); * Response.Write(CSVString(item.observer2) + seperator); * Response.Write(CSVString(item.vessel) + seperator); * Response.Write(CSVString(item.cruise) + seperator); * Response.Write(CSVString(item.transect) + seperator); * Response.Write(item.startLat.ToString() + seperator); * Response.Write(item.startLng.ToString() + seperator); * Response.Write(CSVString(item.endLat) + seperator); * Response.Write(CSVString(item.endLng) + seperator); * Response.Write(CSVString(item.CountType) + seperator); * Response.Write(CSVString(item.WindDirection) + seperator); * Response.Write(CSVString(item.WindDirection_deg) + seperator); * Response.Write(CSVString(item.WindStrength_kmph) + seperator); * Response.Write(CSVString(item.CloudCover) + seperator); * Response.Write(CSVString(item.Visibility_m) + seperator); * Response.Write(CSVString(item.Precipitation) + seperator); * Response.Write(CSVString(item.CountingShipFollowers) + seperator); * Response.Write(CSVString(item.SwellHeight_m) + seperator); * Response.Write(CSVString(item.CoordinateSystem) + seperator); * Response.Write(CSVString(item.CountArea) + seperator); * Response.Write(CSVString(item.ArcFromBow) + seperator); * Response.Write(CSVString(item.PositionOnVessel) + seperator); * * * * * Response.Write("\r\n"); * * } * } */ }
public Entry(TCount count, TValue value) { this.count = count; this.value = value; }