/// <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); }
/// <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); }