private static void AssignAttendance(LtpCourse course, JsonObject attendanceObject) { int classLength = 1; if (course as LBCCourse != null) { classLength = (int)Char.GetNumericValue(course.Ltpjc[2]); } if (attendanceObject.GetNamedBoolean("supported") == false) { course.Attendance = new Attendance(course, 0, 0, 0, classLength); return; } ushort total = (ushort)attendanceObject.GetNamedNumber("total_classes"); ushort attended = (ushort)attendanceObject.GetNamedNumber("attended_classes"); double percentage = attendanceObject.GetNamedNumber("attendance_percentage"); course.Attendance = new Attendance(course, total, attended, percentage, classLength); JsonArray detailsArray = attendanceObject.GetNamedArray("details"); foreach (JsonValue stubValue in detailsArray) { JsonObject stubObject = stubValue.GetObject(); DateTimeOffset classDate = new DateTimeOffset(DateTime.ParseExact(stubObject.GetNamedString("date"), "yyyy-MM-dd", null), new TimeSpan(5, 30, 0)); course.Attendance.AddStubToDetails(classDate, new AttendanceStub( stubObject.GetNamedString("slot"), stubObject.GetNamedString("status"), stubObject.GetNamedString("reason"))); } }
// Depth 1 Assignment (Ltp and NonLtp) private static void AssignBaseTypeDetails(LtpCourse ltpCourse, JsonObject courseObject) { ltpCourse.Ltpc = courseObject.GetNamedString("ltpc"); ltpCourse.Slot = courseObject.GetNamedString("slot"); ltpCourse.Venue = courseObject.GetNamedString("venue"); AssignTimings(ltpCourse, courseObject.GetNamedArray("timings")); AssignAttendance(ltpCourse, courseObject.GetNamedObject("attendance")); }
private static void AssignTimings(LtpCourse course, JsonArray timingsArray) { foreach (JsonValue classHoursValue in timingsArray) { JsonObject classHoursObject = classHoursValue.GetObject(); DateTimeOffset start = GetUtcTime(classHoursObject.GetNamedString("start_time")); DateTimeOffset end = GetUtcTime(classHoursObject.GetNamedString("end_time")); DayOfWeek day = (DayOfWeek)((int)classHoursObject.GetNamedNumber("day") + 1); course.AddClassHoursInstance(new ClassHours(course, start, end, day)); } }
private static MarksInfo GetMarksInfo(LtpCourse course, string marksType, JsonObject marksObject) { if (marksObject.GetNamedValue(marksType).ValueType == JsonValueType.Null) { return(new MarksInfo(course, null, "")); } else { return(new MarksInfo(course, marksObject.GetNamedNumber(marksType), marksObject.GetNamedString(marksType + "_status"))); } }
private static void AssignAttendance(LtpCourse course, JsonObject attendanceObject) { ushort total = (ushort)attendanceObject.GetNamedNumber("total_classes"); ushort attended = (ushort)attendanceObject.GetNamedNumber("attended_classes"); double percentage = attendanceObject.GetNamedNumber("attendance_percentage"); course.Attendance = new Attendance(course, total, attended, percentage); JsonArray detailsArray = attendanceObject.GetNamedArray("details"); foreach (JsonValue stubValue in detailsArray) { JsonObject stubObject = stubValue.GetObject(); DateTime classDate = DateTime.ParseExact(stubObject.GetNamedString("date"), "yyyy-MM-dd", CultureInfo.InvariantCulture); course.Attendance.AddAttendanceStub( new DateTimeOffset(classDate, new TimeSpan(5, 30, 0)), stubObject.GetNamedString("status"), stubObject.GetNamedString("reason")); } }
private static void AssignMarks(LtpCourse course, JsonObject marksObject) { if (marksObject.GetNamedBoolean("supported") == false) { course.InternalMarksScored = 0; course.TotalMarksTested = 0; return; } double marksScored = 0; JsonArray marksArray = marksObject.GetNamedArray("assessments"); foreach (JsonValue marksValue in marksArray) { JsonObject markStubObject = marksValue.GetObject(); string title = markStubObject.GetNamedString("title").ToUpper(); int maxMarks = (int)markStubObject.GetNamedNumber("max_marks"); int weightage = (int)markStubObject.GetNamedNumber("weightage"); MarkInfo markInfo; if (markStubObject.GetNamedValue("scored_marks").ValueType == JsonValueType.Null) { markInfo = new MarkInfo(course, title, maxMarks, weightage, null, null, ""); } else { markInfo = new MarkInfo(course, title, maxMarks, weightage, null, // currently, 'conducted date' is being skipped. markStubObject.GetNamedNumber("scored_marks"), markStubObject.GetNamedString("status").ToUpper()); marksScored += (double)markInfo.WeightedMarks; course.TotalMarksTested += markInfo.Weightage; } course.AddMarkInfo(markInfo); } course.InternalMarksScored = Math.Round(marksScored, 2); }