private void display(RecordStats stats) { timeTotalValueLbl.Text = new TimeSpanVM(stats.MinutesTotal).ToString(); daysTotalValueLbl.Text = stats.DaysTotal.ToString(); activeDaysTotalValueLbl.Text = stats.ActiveDaysTotal.ToString(); activeDaysPercentValueLbl.Text = stats.ActiveDaysPercent.ToString("n2") + " %"; minutesPerDaysValueLbl.Text = stats.MinutesPerDays.ToString("n2"); minutesPerActiveDaysValueLbl.Text = stats.MinutesPerActiveDays.ToString("n2"); display(stats.TypesStats); }
public RecordStats Count(IList <Record> records, DateTime?dateFrom, DateTime?dateTo) { if (records == null || records.Count == 0) { var statsTmp = new RecordStats(); if (dateFrom.HasValue && dateTo.HasValue) { statsTmp.DaysTotal = getDaysDiff(dateFrom.Value, dateTo.Value); } return(new RecordStats()); } var minutesTotal = 0; var activeDaysTotal = 0; var realDateFrom = dateFrom.HasValue ? dateFrom.Value : getMin(records); var realDateTo = dateTo.HasValue ? dateTo.Value : getMax(records); var daysTotal = getDaysDiff(realDateFrom, realDateTo); var activeDays = new HashSet <DateTime>(); foreach (var record in records) { minutesTotal += record.MinutesTotal; if (!activeDays.Contains(record.Start.Date)) { activeDays.Add(record.Start.Date); activeDaysTotal++; } } var stats = new RecordStats(); stats.DaysTotal = daysTotal; stats.ActiveDaysTotal = activeDaysTotal; stats.MinutesTotal = minutesTotal; stats.MinutesPerDays = daysTotal > 0 ? minutesTotal / (double)daysTotal : 0.0; stats.MinutesPerActiveDays = activeDaysTotal > 0 ? minutesTotal / (double)activeDaysTotal : 0.0; stats.ActiveDaysPercent = daysTotal > 0 ? activeDaysTotal / (double)daysTotal * 100 : 0.0; stats.TypesStats = count(records); return(stats); }
public StatisticsForm(RecordStats stats) { InitializeComponent(); display(stats); }