public static List <ReportLine> GetReport(this Seanse seanse, int interval, Configuration config) { DateTime currentTime = seanse.StartWorkingTime; List <ReportLine> report = new List <ReportLine>(); DateTime end = seanse.LastWorkingTime; while (currentTime < end) { ReportLine line = new ReportLine(); DateTime nextTime = currentTime.AddMinutes(60 - currentTime.Minute); if (nextTime > end) { nextTime = end; } line.Time = nextTime; line.Abonents = seanse.GetAbonents(currentTime, nextTime, config.AbonentsK).Count; line.AbonentsWithInterval = seanse.GetAbonentsWithInterval(currentTime, nextTime, interval, 0.15f, 0.2f).Count; line.MaxSizeInFrames = seanse.GetMaxInFrames(currentTime, nextTime); line.MaxSizeInBytes = line.MaxSizeInFrames * 3.75f; report.Add(line); currentTime = currentTime.AddMinutes(60 - currentTime.Minute); } return(report); }