Example #1
0
        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")));
            }
        }
Example #2
0
        // 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"));
        }
Example #3
0
 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));
     }
 }
Example #4
0
 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")));
     }
 }
Example #5
0
        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"));
            }
        }
Example #6
0
        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);
        }