Пример #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);
        }
Пример #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);
        }
Пример #3
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;
        }
Пример #4
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;
 }