public SiteInfoResponseType GetSites(string[] locationParameters, Boolean includeSeries) { locationParameters = WSUtils.removeEmptyStrings(locationParameters); List <locationParam> siteCodes = new List <locationParam>(locationParameters.Length); foreach (String s in locationParameters) { locationParam lp = new locationParam(s); siteCodes.Add(lp); } SiteInfoType[] sites = ODSiteInfo.GetSitesByLocationParameters(siteCodes.ToArray()); SiteInfoResponseType result = CreateSitesResponse(sites, includeSeries); if (locationParameters.Length == 0) { result.queryInfo = CuahsiBuilder.CreateQueryInfoType("GetSites"); NoteType note = CuahsiBuilder.createNote("ALL Sites(empty request)"); result.queryInfo.note = CuahsiBuilder.addNote(null, note); } else { result.queryInfo = CuahsiBuilder.CreateQueryInfoType("GetSites", locationParameters, null, null, null, null); } return(result); }
private static SiteInfoType getSiteInfoType(locationParam LocationParameter) { SiteInfoType sit; // look in memory // sit = (SiteInfoType)appCache[sitCache + siteCode]; // if (sit != null) return sit; //ok, try the database SiteInfoType[] sites = ODSiteInfo.GetSitesByLocationParameters(new locationParam[] { LocationParameter }); if (sites == null || sites.Length == 0) { return(null); } else if (sites != null && sites.Length == 1) { return(sites[0]); } else { // had better be only one String error = "More than one site with SiteCode '" + LocationParameter + "'"; log.Error(error); throw new WaterOneFlowException(error); } return(sit); }
public SiteInfoResponseType GetSitesByBox(box queryBox, Boolean includeSeries) { IEnumerable <SiteInfoType> sites = ODSiteInfo.GetSitesByBox(queryBox); SiteInfoResponseType result = CreateSitesResponse(sites, includeSeries); // result.queryInfo = CreateQueryInfo(new string[] { queryBox.ToString() }); result.queryInfo = CuahsiBuilder.CreateQueryInfoType("GetSitesByBox"); CuahsiBuilder.AddQueryInfoParameter(result.queryInfo, "north", queryBox.North.ToString()); CuahsiBuilder.AddQueryInfoParameter(result.queryInfo, "south", queryBox.South.ToString()); CuahsiBuilder.AddQueryInfoParameter(result.queryInfo, "east", queryBox.East.ToString()); CuahsiBuilder.AddQueryInfoParameter(result.queryInfo, "west", queryBox.West.ToString()); CuahsiBuilder.AddQueryInfoParameter(result.queryInfo, "includeSeries", includeSeries.ToString()); return(result); }
public IEnumerable <TimeSeriesType> GetTimesSeriesTypeForSiteVariable(string SiteNumber, string StartDate, string EndDate) { W3CDateTime?BeginDateTime; W3CDateTime?EndDateTime; int? variableId = null; int? siteID; VariableInfoType varInfoType = null; SiteInfoType siteType = null; BeginDateTime = GetBeginDateTime(StartDate); EndDateTime = GetEndDateTime(EndDate); locationParam sq = GetLocationParameter(SiteNumber); siteInfoDataSet sitDs = ODSiteInfo.GetSiteInfoDataSet(sq); if (sitDs != null && sitDs.sites.Count > 0) { siteID = sitDs.sites[0].SiteID; ValuesDataSet valuesDs = getValuesDataset(siteID, null, BeginDateTime, EndDateTime); DataTable variableTable = DataSetHelper.SelectDistinct("variableIds", valuesDs.DataValues, "VariableID"); if (variableTable.Rows.Count == 0) { throw new WaterOneFlowException("No Data Available for Time Period."); } foreach (DataRow dataRow in variableTable.Rows) { TimeSeriesType timeSeries = new TimeSeriesType(); timeSeries.sourceInfo = ODSiteInfo.row2SiteInfoElement(sitDs.sites[0], sitDs); int id = (int)dataRow[0]; VariableInfoType vit = ODvariables.GetVariableByID(id, variableDs); timeSeries.variable = vit; // DataView view = new DataView(valuesDs.DataValues, "VariableId = " + id, " DateTime ASC", DataViewRowState.CurrentRows); timeSeries.values = getValues(valuesDs, null, id); yield return(timeSeries); } } }
public TimeSeriesResponseType getValues(string SiteNumber, string Variable, string StartDate, string EndDate) { // convert dates // get site info // get site ID // return value dataset TimeSeriesResponseType response; W3CDateTime? BeginDateTime; W3CDateTime? EndDateTime; int?variableId = null; int?siteID; VariableInfoType varInfoType = null; SiteInfoType siteType = null; BeginDateTime = GetBeginDateTime(StartDate); EndDateTime = GetEndDateTime(EndDate); VariableParam vp = GetVariableParameter(Variable, ref variableId, ref varInfoType); locationParam sq = GetLocationParameter(SiteNumber); siteInfoDataSet sitDs = ODSiteInfo.GetSiteInfoDataSet(sq); response = CuahsiBuilder.CreateTimeSeriesObjectSingleValue(1); if (sitDs != null && sitDs.sites.Count > 0) { siteID = sitDs.sites[0].SiteID; ValuesDataSet valuesDs = getValuesDataset(siteID, variableId, BeginDateTime, EndDateTime); response.timeSeries[0].values = getValues(valuesDs, vp, variableId); // above is the values, add the site, and variables response.timeSeries[0].variable = varInfoType; response.timeSeries[0].sourceInfo = ODSiteInfo.row2SiteInfoElement(sitDs.sites[0], sitDs); } // AddQueryInfo(StartDate, EndDate, Variable, SiteNumber, response); response.queryInfo = CuahsiBuilder.CreateQueryInfoType("GetValues", new string[] { SiteNumber }, null, new string[] { Variable }, StartDate, EndDate); return(response); }
private IEnumerable <SiteInfoType> getSiteInfoType(List <locationParam> LocationParameter) { SiteInfoType sit; // look in memory // sit = (SiteInfoType)appCache[sitCache + siteCode]; // if (sit != null) return sit; //ok, try the database SiteInfoType[] sites = ODSiteInfo.GetSitesByLocationParameters(LocationParameter.ToArray()); if (sites == null || sites.Length == 0) { yield return(null); } foreach (SiteInfoType type in sites) { yield return(type); } }