public ICollection<AvailableWaterDataByStation> FetchCurrentDataTypes()
 {
     List<AvailableWaterDataByStation> stationDataTypes = new List<AvailableWaterDataByStation>();
     using (SqlConnection conn = new SqlConnection(_connectionString))
     {
         conn.Open();
         using (SqlCommand dataTypeLookup = new SqlCommand(string.Format("select * from AvailableWaterDataTypes"), conn))
         using (SqlDataReader reader = dataTypeLookup.ExecuteReader())
         {
             while (reader.Read())
             {
                 AvailableWaterDataByStation record = new AvailableWaterDataByStation();
                 record.DataID = reader.GetInt64(0);
                 record.StationID = reader.GetInt64(1);
                 long typeID = reader.GetInt64(2);
                 record.ParameterCode = this.GetCode(typeID, WaterCodeType.PARAMETER);
                 record.StatisticCode = this.GetCode(typeID, WaterCodeType.STATISTIC);
                 record.CurrentLastDate = reader.GetDateTime(4);
                 stationDataTypes.Add(record);
             }
             reader.Close();
         }
     }
     return stationDataTypes;
 }
 public void UpdateAvailableDataTypes(AvailableWaterDataByStation dataType)
 {
     using (SqlConnection conn = new SqlConnection(_connectionString))
     {
         conn.Open();
         // Create and execute an SQL statement.
         SqlCommand command = new SqlCommand(null, conn);
         command.CommandText = "update AvailableWaterDataTypes set ToDate=@date where ID=@ID";
         command.Parameters.AddWithValue("@ID", dataType.DataID);
         command.Parameters.Add("@date", SqlDbType.DateTime);
         command.Parameters["@date"].Value = dataType.CurrentLastDate;
         command.ExecuteNonQuery();
     }
 }
 public ICollection<AvailableWaterDataByStation> FetchBestDataTypesForStationDate(ICollection<WaterStation> stationIDs, DateTime imageDate)
 {
     List<AvailableWaterDataByStation> stationDataTypes = new List<AvailableWaterDataByStation>();
     Boolean found = false;
     int stationIndex = 0;
     using (SqlConnection conn = new SqlConnection(_connectionString))
     {
         conn.Open();
         while (!found && stationIDs.Count > stationIndex) {
             using (SqlCommand dataTypeLookup = new SqlCommand(string.Format("select * from AvailableWaterDataTypes where Station_ID = {0}", stationIDs.ElementAt(stationIndex).ID), conn))
             using (SqlDataReader reader = dataTypeLookup.ExecuteReader())
             {
                 while (reader.Read())
                 {
                     if (imageDate.CompareTo(reader.GetDateTime(4)) <= 0)
                     {
                         AvailableWaterDataByStation record = new AvailableWaterDataByStation();
                         record.DataID = reader.GetInt64(0);
                         record.StationID = reader.GetInt64(1);
                         long typeID = reader.GetInt64(2);
                         record.ParameterCode = this.GetCode(typeID, WaterCodeType.PARAMETER);
                         record.StatisticCode = this.GetCode(typeID, WaterCodeType.STATISTIC);
                         record.CurrentLastDate = reader.GetDateTime(4);
                         stationDataTypes.Add(record);
                         found = true;
                     }
                 }
                 reader.Close();
             }
             stationIndex++;
         } // End while not found
     }
     return stationDataTypes;
 }