Esempio n. 1
0
        /// <summary>
        /// The form report.
        /// </summary>
        /// <param name="periodInHours">
        /// The period in hours.
        /// </param>
        /// <returns>
        /// The <see cref="AvailabilityData"/>.
        /// </returns>
        public AvailabilityData FormReport(int periodInHours)
        {
            AvailabilityData data = this.FormReport(periodInHours, new ReportOptions
            {
                PeriodType = periodInHours > 24 ? AvailabilityData.PeriodTypeEnum.Day : AvailabilityData.PeriodTypeEnum.Hour
            });

            return(data);
        }
Esempio n. 2
0
        /// <summary>
        /// The form report.
        /// </summary>
        /// <param name="periodInHours">
        /// The period in hours.
        /// </param>
        /// <param name="reportOptions">
        /// The report options.
        /// </param>
        /// <returns>
        /// The <see cref="AvailabilityData"/>.
        /// </returns>
        public AvailabilityData FormReport(int periodInHours, ReportOptions reportOptions)
        {
            // this is a stub
            // it should request real repository with data
            var data = new AvailabilityData();

            data.PeriodType = reportOptions.PeriodType;

            if (data.PeriodType == AvailabilityData.PeriodTypeEnum.Day)
            {
                data.Statistics = availabilityByHours.GroupBy(i => i.Key.Date).Take(periodInHours / 24).Select(j => Math.Round(j.Average(g => g.Value), 2)).ToArray();
            }
            else
            {
                data.Statistics = availabilityByHours.Take(periodInHours).Select(i => i.Value).ToArray();
            }

            return(data);
        }