Beispiel #1
0
        /// <summary>
        /// Check input series Begin and End dates against input Start and End dates.  
        ///   Series dates within input Start and End Dates - return true, return false otherwise
        /// </summary>
        public static bool IsSeriesInDateRange(HISWebClient.BusinessObjects.Models.SeriesDataCartModel.SeriesDataCart series, DateTime startDate, DateTime endDate)
        {
            if ((startDate <= series.BeginDate) && (endDate >= series.EndDate))
            {
                //Series dates within input date range - return true...
                return true;
            }

            return false;
        }
Beispiel #2
0
        /// <summary>
        /// Adds series to an existing feature set
        /// </summary>
        /// <param name="series">Series</param>
        /// <param name="fs">Feature set</param>
        private static void AddToFeatureSet(HISWebClient.BusinessObjects.Models.SeriesDataCartModel.SeriesDataCart series, IFeatureSet fs)
        {
            double lat = series.Latitude;
            double lon = series.Longitude;
            var coord = new Coordinate(lon, lat);

            var f = new Feature(FeatureType.Point, new[] {coord});
            fs.Features.Add(f);

            var row = f.DataRow;
            PopulateDataRow(series, row);
        }
Beispiel #3
0
 private static void PopulateDataRow(HISWebClient.BusinessObjects.Models.SeriesDataCartModel.SeriesDataCart series, DataRow row)
 {
     row["DataSource"] = series.ServCode;
     row["SiteName"] = series.SiteName;
     row["VarName"] = series.VariableName;
     row["SiteCode"] = series.SiteCode;
     row["VarCode"] = series.VariableCode;
     row["Keyword"] = series.ConceptKeyword;
     row["ValueCount"] = series.ValueCount;
     row["StartDate"] = series.BeginDate.ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture);
     row["EndDate"] = series.EndDate.ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture);
     row["ServiceURL"] = series.ServURL;
     row["ServiceCode"] = series.ServCode;
     row["DataType"] = series.DataType;
     row["ValueType"] = series.ValueType;
     row["SampleMed"] = series.SampleMedium;
     row["TimeUnits"] = series.TimeUnit;
     row["TimeSupport"] = series.TimeSupport;
     row["Latitude"] = series.Latitude;
     row["Longitude"] = series.Longitude;
     row["IsRegular"] = series.IsRegular;
     row["Units"] = series.VariableUnits;
 }
Beispiel #4
0
        /// <summary>
        /// Updates  BeginDate/EndDate/ValueCount in the SeriesDataCart to the user-specified range
        /// </summary>
        /// <param name="series">Series to update</param>
        /// <param name="startDate">User-specified startDate</param>
        /// <param name="endDate">User-specified endDate</param>
        public static void UpdateDataCartToDateInterval(HISWebClient.BusinessObjects.Models.SeriesDataCartModel.SeriesDataCart series, DateTime beginDate, DateTime endDate)
        {
            //Initialize/validate input parameters...
            if ((null == series) ||
                (0 >= series.ValueCount) ||				//No values in series
                (! series.IsRegular) ||					//Data is instantaneous - cannot calculate collection interval
                (null == series.BeginDate) ||
                (null == series.EndDate) ||
                (series.EndDate <= series.BeginDate) ||	//Series End date earlier than Begin date
                (null == beginDate) ||
                (null == endDate) ||
                (endDate <= beginDate) ||				//Search End date earlier than Begin date
                (series.BeginDate > endDate) ||			//Series begins after search ends
                (series.EndDate < beginDate))			//Series ends before search begins
            {
                //Input parameter(s) invalid - return early...
                series.ValueCount = 0;	//No value count estimate made
                return;
            }

            //Determine the search begin and end dates...
            var searchBeginDate = (series.BeginDate < beginDate) ? beginDate : series.BeginDate;
            var searchEndDate = (series.EndDate > endDate) ? endDate : series.EndDate;

            //Calculate total and search time spans
            TimeSpan tsTotal = series.EndDate - series.BeginDate;
            TimeSpan tsSearch = searchEndDate - searchBeginDate;

            //Calculate estimated value count:  Total value count * (search time span / total time span)
            //NOTE: The use of MidpointRouding.AwayFromZero ensures values like 4.5 round to 5 (not 4)
            //		See MicroSoft documentation on Math.Round(Double) and Math.Round(Double, MidpointRounding) for more information
            int vcTotal = series.ValueCount;
            series.ValueCount = Convert.ToInt32( Math.Round(vcTotal * (tsSearch.TotalMilliseconds / tsTotal.TotalMilliseconds), MidpointRounding.AwayFromZero));

            //Set series begin and and dates for search...
            series.BeginDate = searchBeginDate;
            series.EndDate = searchEndDate;
        }