public ProgramAttendanceDTO(SORProgramAttendance SORProgramAttendance, List <Program> programList, int subjectUserID, int subjectProgramID)
 {
     if (DateTime.TryParse(SORProgramAttendance.DateAttended, out DateTime dateAttended))
     {
         AttendanceDate = dateAttended;
     }
     CreatedByUserID = "SYSTEM";
     Deleted         = false;
     if (Convert.ToDecimal(SORProgramAttendance.NumberHoursAttended) != 0)
     {
         AttendanceStatus = (int)ProgramAttendanceStatus.Present;
     }
     else if (Convert.ToDecimal(SORProgramAttendance.NumberHoursExcused) != 0)
     {
         AttendanceStatus = (int)ProgramAttendanceStatus.ExcusedAbsence;
     }
     else
     {
         AttendanceStatus = (int)ProgramAttendanceStatus.Absent;
     }
     ProgramID           = programList.FirstOrDefault().ProgramId;
     SubjectUserID       = subjectUserID;
     Note                = string.Empty;
     BehaviorRating      = 0;
     RecommendRetake     = false;
     NumberHoursAttended = Convert.ToDecimal(SORProgramAttendance.NumberHoursAttended);
     NumberHoursExcused  = Convert.ToDecimal(SORProgramAttendance.NumberHoursExcused);
     SubjectProgramID    = subjectProgramID;
 }
 public AttendanceDetailsFormInput(SORProgramAttendance attendance, List <Program> programList, int subjectUserID, int parentprogramID)
 {
     SubjectUserID   = subjectUserID;
     ParentProgramID = parentprogramID;
     if (DateTime.TryParse(attendance.DateAttended, out DateTime dateAttended))
     {
         attendanceDate = dateAttended;
     }
     AttendanceStatus = 0; // The field is not important as we are using this model to check whether the subject has completed the required number of sessions
     ProgramID        = programList.FirstOrDefault().ProgramId;
     SubjectUserID    = subjectUserID;
     Note             = string.Empty;
     BehaviorRating   = 0;
     RecommendRetake  = false;
 }