public static SiteInfoResponseTypeSite CreateSite(SiteInfoType sit, Boolean addSeriesCatalog) { SiteInfoResponseTypeSite site = new SiteInfoResponseTypeSite(); if (sit != null) { site.siteInfo = sit; if (addSeriesCatalog) { int?aSiteID = null; Nullable <int> siteIDint = null; try { aSiteID = sit.siteCode[0].siteID; } catch (NullReferenceException e) { String error = " no site code returned for sitecode" + sit.siteCode[0].network + ":" + sit.siteCode[0].Value; log.Warn(error); site.seriesCatalog = CreateSeriesCatalogRecord(null); } try { siteIDint = Convert.ToInt32(aSiteID); } catch (InvalidCastException e) { String error = " siteID was not an integer" + sit.siteCode[0].network + ":" + sit.siteCode[0].Value; log.Warn(error); site.seriesCatalog = CreateSeriesCatalogRecord(null); } try { site.seriesCatalog = CreateSeriesCatalogRecord(siteIDint); } catch (InvalidCastException e) { String error = " Error creating series record for " + sit.siteCode[0].network + ":" + sit.siteCode[0].Value; log.Warn(error); site.seriesCatalog = CreateSeriesCatalogRecord(null); } } } else { String error = " no site code returned for sitecode" + sit.siteCode[0].network + ":" + sit.siteCode[0].Value;; log.Warn(error); } return(site); }
private SiteInfoResponseType createSiteInfoResponse(locationParam[] LocationParameters, Boolean IncludeSeries) { // WSUtils.removeEmptyStrings(LocationParameters); /* for each site code, add a siteInfo type with a period of record * // for each site * createSitInfoType * add to response * createPeriodOfRecord * add to response * return response * */ SiteInfoResponseType response = CuahsiBuilder.CreateASetOfSiteResponses(LocationParameters.Length, 1); List <locationParam> lpList = new List <locationParam>(LocationParameters); foreach (locationParam lp in lpList) { if (lp == null) { lpList.Remove(lp); } } List <SiteInfoResponseTypeSite> sitesList = new List <SiteInfoResponseTypeSite>(lpList.Count); foreach (SiteInfoType sit in getSiteInfoType(lpList)) { SiteInfoResponseTypeSite site = CreateSite(sit, IncludeSeries); if (site != null) { sitesList.Add(site); } } response.site = sitesList.ToArray(); return(response); }
/// <summary> /// Gets the sites, in XML format [test for SNOW] /// </summary> public static SiteInfoResponseTypeSite[] GetSitesFromDb() { List<SiteInfoResponseTypeSite> siteList = new List<SiteInfoResponseTypeSite>(); string cnn = GetConnectionString(); string serviceCode = ConfigurationManager.AppSettings["network"]; using (SqlConnection conn = new SqlConnection(cnn)) { using (SqlCommand cmd = new SqlCommand()) { string sql = Resources.SqlQueries.query_sites_hourly; cmd.CommandText = sql; cmd.Connection = conn; conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { SiteInfoResponseTypeSite newSite = new SiteInfoResponseTypeSite(); SiteInfoType si = new SiteInfoType(); if (dr["altitude"] != DBNull.Value) { si.elevation_m = Convert.ToDouble(dr["altitude"]); si.elevation_mSpecified = true; } else { si.elevation_m = 0; si.elevation_mSpecified = true; } si.geoLocation = new SiteInfoTypeGeoLocation(); LatLonPointType latLon = new LatLonPointType(); latLon.latitude = Convert.ToDouble(dr["Lat"]); latLon.longitude = Convert.ToDouble(dr["lon"]); latLon.srs = "EPSG:4326"; si.geoLocation.geogLocation = latLon; si.geoLocation.localSiteXY = new SiteInfoTypeGeoLocationLocalSiteXY[1]; si.geoLocation.localSiteXY[0] = new SiteInfoTypeGeoLocationLocalSiteXY(); si.geoLocation.localSiteXY[0].X = latLon.longitude; si.geoLocation.localSiteXY[0].Y = latLon.latitude; si.geoLocation.localSiteXY[0].ZSpecified = false; si.geoLocation.localSiteXY[0].projectionInformation = si.geoLocation.geogLocation.srs; si.metadataTimeSpecified = false; //si.oid = Convert.ToString(dr["st_id"]); //si.note = new NoteType[1]; //si.note[0] = new NoteType(); //si.note[0].title = "my note"; //si.note[0].type = "custom"; //si.note[0].Value = "CHMI-D"; si.verticalDatum = "MSL"; si.siteCode = new SiteInfoTypeSiteCode[1]; si.siteCode[0] = new SiteInfoTypeSiteCode(); si.siteCode[0].network = serviceCode; si.siteCode[0].siteID = Convert.ToInt32(dr["st_id"]); si.siteCode[0].siteIDSpecified = true; si.siteCode[0].Value = Convert.ToString(dr["st_id"]); si.siteName = Convert.ToString(dr["st_name"]); newSite.siteInfo = si; siteList.Add(newSite); } } } return siteList.ToArray(); }
/// <summary> /// Gets the sites, in XML format [test for SNOW] /// </summary> public static SiteInfoResponseTypeSite[] GetSitesByBox(box queryBox, bool includeSeries) { List<SiteInfoResponseTypeSite> siteList = new List<SiteInfoResponseTypeSite>(); string cnn = GetConnectionString(); string serviceCode = ConfigurationManager.AppSettings["network"]; using (SqlConnection conn = new SqlConnection(cnn)) { using (SqlCommand cmd = new SqlCommand()) { string sqlSites = "SELECT plaveninycz.Stations.st_id, st_name, altitude, location_id, lat, lon FROM plaveninycz.Stations INNER JOIN StationsVariables stv ON Stations.st_id = stv.st_id " + "WHERE var_id in (1, 4, 5, 16) AND lat IS NOT NULL"; cmd.CommandText = sqlSites; cmd.Connection = conn; conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { SiteInfoResponseTypeSite newSite = new SiteInfoResponseTypeSite(); SiteInfoType si = new SiteInfoType(); if (dr["altitude"] != DBNull.Value) { si.elevation_m = Convert.ToDouble(dr["altitude"]); si.elevation_mSpecified = true; } else { si.elevation_m = 0; si.elevation_mSpecified = true; } si.geoLocation = new SiteInfoTypeGeoLocation(); LatLonPointType latLon = new LatLonPointType(); latLon.latitude = Convert.ToDouble(dr["Lat"]); latLon.longitude = Convert.ToDouble(dr["lon"]); latLon.srs = "EPSG:4326"; si.geoLocation.geogLocation = latLon; si.geoLocation.localSiteXY = new SiteInfoTypeGeoLocationLocalSiteXY[1]; si.geoLocation.localSiteXY[0] = new SiteInfoTypeGeoLocationLocalSiteXY(); si.geoLocation.localSiteXY[0].X = latLon.longitude; si.geoLocation.localSiteXY[0].Y = latLon.latitude; si.geoLocation.localSiteXY[0].ZSpecified = false; si.geoLocation.localSiteXY[0].projectionInformation = si.geoLocation.geogLocation.srs; si.metadataTimeSpecified = false; si.verticalDatum = "Unknown"; si.siteCode = new SiteInfoTypeSiteCode[1]; si.siteCode[0] = new SiteInfoTypeSiteCode(); si.siteCode[0].network = serviceCode; si.siteCode[0].siteID = Convert.ToInt32(dr["st_id"]); si.siteCode[0].siteIDSpecified = true; si.siteCode[0].Value = Convert.ToString(dr["st_id"]); si.siteName = Convert.ToString(dr["st_name"]); newSite.siteInfo = si; siteList.Add(newSite); } } } return siteList.ToArray(); }
public static SiteInfoResponseTypeSite GetSiteFromDb(string siteId, bool includeSeriesCatalog) { SiteInfoResponseTypeSite newSite = new SiteInfoResponseTypeSite(); newSite.siteInfo = GetSiteFromDb2(siteId); //to add the catalog if (includeSeriesCatalog) { List<int> variableIdList = GetVariablesForSite(Convert.ToInt32(siteId)); int numVariables = variableIdList.Count; newSite.seriesCatalog = new seriesCatalogType[1]; newSite.seriesCatalog[0] = new seriesCatalogType(); List<seriesCatalogTypeSeries> seriesCatalogList = new List<seriesCatalogTypeSeries>(); for (int i = 0; i < numVariables; i++) { seriesCatalogTypeSeries cat = GetSeriesCatalogFromDb(Convert.ToInt32(siteId), variableIdList[i]); if (cat != null) { seriesCatalogList.Add(cat); } } newSite.seriesCatalog[0].series = seriesCatalogList.ToArray(); } return newSite; }
public override SiteInfoResponseTypeGeneric GetSiteInfoObject(string site, String authToken) { Stopwatch timer = System.Diagnostics.Stopwatch.StartNew(); queryLog2.LogStart(Logging.Methods.GetSiteInfo, site, Context.Request.UserHostName); try { if (String.IsNullOrEmpty(site)) { throw new WaterOneFlowException("Bad Location parameter submitted:'" + site + "'"); } List <locationParam> lParams = new List <locationParam>(); //foreach (String site in SiteNumbers) //{ try { locationParam lp = new locationParam(site); lParams.Add(lp); } catch { // only one here log.Info("Bad Location parameter submitted:'" + site + "'"); throw new WaterOneFlowException("Bad Location parameter submitted:'" + site + "'"); } //} if (lParams.Count > 0) { SiteInfoType[] siteList = ODws.GetSites(lParams.ToArray()); SiteInfoResponseType sit = new SiteInfoResponseType(); SiteInfoResponseTypeSite[] sites = new SiteInfoResponseTypeSite[siteList.Length]; // only one site sites[0] = new SiteInfoResponseTypeSite(); sites[0].siteInfo = siteList[0]; // now add series sites[0].seriesCatalog = ODws.GetSeries(lParams[0]); sit.site = sites; queryLog2.LogEnd(Logging.Methods.GetSiteInfo, site, timer.ElapsedMilliseconds.ToString(), sit.site.Length.ToString(), Context.Request.UserHostName); // add query info if (sit.queryInfo == null) { sit.queryInfo = new QueryInfoType(); } sit.queryInfo.creationTime = DateTime.Now.ToLocalTime(); sit.queryInfo.creationTimeSpecified = true; QueryInfoTypeCriteria crit = new QueryInfoTypeCriteria(); if (String.IsNullOrEmpty(site)) { crit.locationParam = "none"; } else { crit.locationParam = site; } sit.queryInfo.criteria = crit; return(new WaterOneFlow.Service.v1_1.xsd.SiteInfoResponse(sit)); } else { queryLog2.LogEnd(Logging.Methods.GetSiteInfo, site, timer.ElapsedMilliseconds.ToString(), "-9999", Context.Request.UserHostName); throw new WaterOneFlowException("No Valid Site Code submitted"); } } catch (Exception we) { log.Warn(we.Message); queryLog2.LogEnd(Logging.Methods.GetSiteInfo, site, timer.ElapsedMilliseconds.ToString(), "-9999", Context.Request.UserHostName); throw SoapExceptionGenerator.WOFExceptionToSoapException(we); } }
public SiteInfoResponseTypeGeneric GetSitesObject(string[] site, String authToken) { Stopwatch timer = System.Diagnostics.Stopwatch.StartNew(); queryLog2.LogStart(Logging.Methods.GetSites, site.ToString(), Context.Request.UserHostName); try { List <locationParam> lParams = new List <locationParam>(); foreach (String s in site) { try { if (!String.IsNullOrEmpty(s)) { locationParam lp = new locationParam(s); lParams.Add(lp); } } catch { log.Info("Bad Location parameter submitted"); } } SiteInfoType[] siteList; if (lParams.Count > 0) { siteList = ODws.GetSites(lParams.ToArray()); } else { siteList = ODws.GetSites(null); } SiteInfoResponseType sit = new SiteInfoResponseType(); WaterOneFlow.Schema.v1_1. SiteInfoResponseTypeSite[] sites = new SiteInfoResponseTypeSite[siteList.Length]; for (int i = 0; i < siteList.Length; i++) { sites[i] = new SiteInfoResponseTypeSite(); sites[i].siteInfo = siteList[i]; } sit.site = sites; queryLog2.LogEnd(Logging.Methods.GetSites, site.ToString(), timer.ElapsedMilliseconds.ToString(), sit.site.Length.ToString(), Context.Request.UserHostName); // add query info if (sit.queryInfo == null) { sit.queryInfo = new QueryInfoType(); } sit.queryInfo.creationTime = DateTime.Now.ToLocalTime(); sit.queryInfo.creationTimeSpecified = true; QueryInfoTypeCriteria crit = new QueryInfoTypeCriteria(); if (sites == null || sites.Length == 0) { crit.locationParam = "ALL (empty request)"; } else { crit.locationParam = sites.ToString(); } sit.queryInfo.criteria = crit; return(new WaterOneFlow.Service.v1_1.xsd.SiteInfoResponse(sit)); } catch (Exception we) { log.Warn(we.Message); queryLog2.LogEnd(Logging.Methods.GetSites, site.ToString(), timer.ElapsedMilliseconds.ToString(), "-9999", Context.Request.UserHostName ); throw SoapExceptionGenerator.WOFExceptionToSoapException(we); } }
public static SiteInfoResponseTypeSite CreateSite(SiteInfoType sit, Boolean addSeriesCatalog) { SiteInfoResponseTypeSite site = new SiteInfoResponseTypeSite(); if (sit != null) { site.siteInfo = sit; if (addSeriesCatalog) { int? aSiteID = null; Nullable<int> siteIDint = null; try { aSiteID = sit.siteCode[0].siteID; } catch (NullReferenceException e) { String error = " no site code returned for sitecode" + sit.siteCode[0].network + ":" + sit.siteCode[0].Value; log.Warn(error); site.seriesCatalog = CreateSeriesCatalogRecord(null); } try { siteIDint = Convert.ToInt32(aSiteID); } catch (InvalidCastException e) { String error = " siteID was not an integer" + sit.siteCode[0].network + ":" + sit.siteCode[0].Value; log.Warn(error); site.seriesCatalog = CreateSeriesCatalogRecord(null); } try { site.seriesCatalog = CreateSeriesCatalogRecord(siteIDint); } catch (InvalidCastException e) { String error = " Error creating series record for " + sit.siteCode[0].network + ":" + sit.siteCode[0].Value; log.Warn(error); site.seriesCatalog = CreateSeriesCatalogRecord(null); } } } else { String error = " no site code returned for sitecode" + sit.siteCode[0].network + ":" + sit.siteCode[0].Value; ; log.Warn(error); } return site; }