Exemplo n.º 1
0
            /// <summary>
            /// GetValues custom implementation
            /// </summary>
            /// <param name="SiteNumber">network:SiteCode</param>
            /// <param name="Variable">vocabulary:VariableCode</param>
            /// <param name="StartDate">yyyy-MM-dd</param>
            /// <param name="EndDate">yyyy-MM-dd</param>
            /// <returns></returns>
            public TimeSeriesResponseType GetValues(string SiteNumber,
                                                    string Variable,
                                                    string StartDate,
                                                    string EndDate)
            {
                Stopwatch timer = System.Diagnostics.Stopwatch.StartNew();

                // queryLog.Info("GetValues|" + SiteNumber + "|" + Variable + "|" + StartDate + "|" + EndDate);
                //String network,method,location, variable, start, end, , processing time,count
                queryLog2.LogValuesStart(CustomLogging.Methods.GetValues, // method
                                         SiteNumber,                      //locaiton
                                         Variable,                        //variable
                                         StartDate,                       // startdate
                                         EndDate,                         //enddate
                                         appContext.Request.UserHostName);

                //get siteId, variableId
                string siteId     = SiteNumber.Substring(SiteNumber.LastIndexOf(":") + 1);
                string variableId = Variable.Substring(Variable.LastIndexOf(":") + 1);



                DateTime startDateTime = new DateTime(2000, 1, 1);
                DateTime endDateTime   = DateTime.Now;

                if (StartDate != String.Empty)
                {
                    startDateTime = DateTime.Parse(StartDate);
                }

                if (EndDate != String.Empty)
                {
                    endDateTime = DateTime.Parse(EndDate);
                }

                //TimeSeriesResponseType resp = obj.getValues(SiteNumber, Variable, StartDate, EndDate);
                TimeSeriesResponseType resp = new TimeSeriesResponseType();

                resp.timeSeries               = new TimeSeriesType[1];
                resp.timeSeries[0]            = new TimeSeriesType();
                resp.timeSeries[0].sourceInfo = WebServiceUtils.GetSiteFromDb2(siteId);
                resp.timeSeries[0].variable   = WebServiceUtils.GetVariableInfoFromDb(variableId);

                resp.timeSeries[0].values    = new TsValuesSingleVariableType[1];
                resp.timeSeries[0].values[0] = WebServiceUtils.GetValuesFromDb(siteId, variableId, startDateTime, endDateTime);

                //set the query info
                resp.queryInfo          = new QueryInfoType();
                resp.queryInfo.criteria = new QueryInfoTypeCriteria();

                resp.queryInfo.creationTime           = DateTime.UtcNow;
                resp.queryInfo.creationTimeSpecified  = true;
                resp.queryInfo.criteria.locationParam = SiteNumber;
                resp.queryInfo.criteria.variableParam = Variable;
                resp.queryInfo.criteria.timeParam     = CuahsiBuilder.createQueryInfoTimeCriteria(StartDate, EndDate);

                queryLog2.LogValuesEnd(CustomLogging.Methods.GetValues,
                                       SiteNumber,                                //locaiton
                                       Variable,                                  //variable
                                       StartDate,                                 // startdate
                                       EndDate,                                   //enddate
                                       timer.ElapsedMilliseconds,                 // processing time
                                                                                  // assume one for now
                                       resp.timeSeries[0].values[0].value.Length, // count
                                       appContext.Request.UserHostName);

                return(resp);
            }