public void AddContrib(DateTime day, int taskId, double amount)
        {
            //Debug.Assert(day.Kind == DateTimeKind.Local, "Day is not in local time!");
            if (day < StartDate || day > EndDate)
            {
                return; // ignore
            }

            if (!DayContribs.ContainsKey(day))
            {
                DayContribs[day] = amount;
            }
            else
            {
                DayContribs[day] += amount;
            }
            if (!TaskContribs.ContainsKey(taskId))
            {
                TaskContribs[taskId] = amount;
            }
            else
            {
                TaskContribs[taskId] += amount;
            }
        }
 protected double GetTotalContribBetween(DateTime startDate, DateTime endDate)
 {
     return(DayContribs.Where(d => d.Key >= startDate && d.Key <= endDate).Sum(c => c.Value));
 }