示例#1
0
            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);
                }
            }
示例#2
0
 private bool OnAddCanExecute()
 {
     return(Worker != null &&
            SelectedWorkerTour != null &&
            SelectedWorkerState != null &&
            SelectedWorker != null &&
            !Attendances.Any(c => c.WorkerID == SelectedWorker.ID));
 }