public Dictionary <int, Attendance> MostRecentAttendance; /* topicid is key */ public StatisticalAttendanceStatusRecent MostRecentAttendanceStatus(Topic top, DateTime cutoff) { if (MostRecentAttendance.ContainsKey(top.TopicID)) { var mratt = MostRecentAttendance[top.TopicID]; if (mratt.attended_when.HasValue) { if (timeunitcalc.AddInterval(mratt.attended_when.Value, top.ValidityFactor, top.ValidityUnit) >= cutoff) { return(StatisticalAttendanceStatusRecent.GREENDoneAndValidToday); } else { return(StatisticalAttendanceStatusRecent.REDDoneButExpired); } } else { if (Attendances.Any(a => (a.Key.Item1 > mratt.DateTraining) && (a.Value.attended_when ?? a.Value.DateTraining) <= cutoff)) /* [dohler>fdunst>dlatikay 20160419] */ { return(StatisticalAttendanceStatusRecent.WHITENeverAttendedPlannedTolerable); } else { return(StatisticalAttendanceStatusRecent.REDDoneButExpired); } } } else { return(StatisticalAttendanceStatusRecent.WHITENeverPlannedNorAttended); } }
private bool OnAddCanExecute() { return(Worker != null && SelectedWorkerTour != null && SelectedWorkerState != null && SelectedWorker != null && !Attendances.Any(c => c.WorkerID == SelectedWorker.ID)); }