Exemplo n.º 1
0
        public void SaveReportEntry(ReportEntry reportEntry)
        {
            var reportEntryString      = $"\"{reportEntry.GroupedBy}\"{CsvSeparator}\"{reportEntry.ThenGroupedBy}\"{CsvSeparator}\"{Enumerable.Sum<KeyValuePair<DateTime, float>>(reportEntry.NrOfHoursPerDay, x => x.Value)}\"{CsvSeparator}{string.Join(CsvSeparator.ToString(), Enumerable.Select<KeyValuePair<DateTime, float>, string>(reportEntry.NrOfHoursPerDay, hoursForDay => $"\"{GetHoursForDayString(hoursForDay)}\""))}";
            var reportEntryColumnCount = reportEntryString.Split(CsvSeparator).Length;

            if (reportEntryColumnCount != _reportColumnCount)
            {
                throw new ArgumentException($"Report entry column count {reportEntryColumnCount} does not match intended report column count {_reportColumnCount}", nameof(reportEntry));
            }

            File.AppendAllLines(
                FullFilePath,
                new[]
            {
                reportEntryString
            });
        }
Exemplo n.º 2
0
 protected bool Equals(ReportEntry other)
 {
     return(string.Equals(GroupedBy, other.GroupedBy) && string.Equals(ThenGroupedBy, other.ThenGroupedBy) && NrOfHoursPerDay.SequenceEqual(other.NrOfHoursPerDay) && PeriodNrOfDays == other.PeriodNrOfDays);
 }