/// <summary> /// Parses the Json string and returns a new User instance populated with all details. On failure, the method returns null. /// </summary> /// <param name="jsonString"></param> /// <returns></returns> public static User TryParseData(string jsonString) { try { User user = GetJsonStringOwner(jsonString); JsonObject rootObject = JsonObject.Parse(jsonString); ushort totalCredits = 0; JsonArray coursesArray = rootObject.GetNamedArray("courses"); foreach (JsonValue courseValue in coursesArray) { JsonObject courseObj = courseValue.GetObject(); Course course; int courseType = (int)courseObj.GetNamedNumber("course_type"); switch (courseType) { case 1: course = new CBLCourse(); break; case 2: course = new LBCCourse(); break; case 3: course = new PBLCourse(); break; case 4: course = new RBLCourse(); break; case 5: case 6: course = new PBCCourse(); break; default: continue; } AssignCourseDetails(course, courseObj); user.AddCourse(course); totalCredits += course.Credits; } user.CoursesMetadata = new CoursesMetadata( rootObject.GetNamedString("semester"), GetRefreshUTC(rootObject.GetNamedString("refreshed")), totalCredits); return(user); } catch { return(null); } }
/// <summary> /// Parses the Json string and returns a new User instance populated with all details. On failure, the method returns null. /// </summary> /// <param name="jsonString"></param> /// <returns></returns> public static User TryParseData(string jsonString) { try { User user; JsonObject rootObject = JsonObject.Parse(jsonString); string regNo = rootObject.GetNamedString("reg_no"); DateTimeOffset dob = DateTimeOffset.ParseExact(rootObject.GetNamedString("dob"), "ddMMyyyy", CultureInfo.InvariantCulture); string campus = rootObject.GetNamedString("campus"); user = new User(regNo, dob, campus); JsonArray coursesArray = rootObject.GetNamedArray("courses"); foreach (JsonValue courseValue in coursesArray) { JsonObject courseObj = courseValue.GetObject(); Course course; int courseType = (int)courseObj.GetNamedNumber("course_type"); switch (courseType) { case 1: course = new CBLCourse(); break; case 2: course = new LBCCourse(); break; case 3: course = new PBLCourse(); break; case 5: course = new PBCCourse(); break; default: continue; } AssignCourseDetails(course, courseObj); user.AddCourse(course); } user.CoursesMetadata = new CoursesMetadata( rootObject.GetNamedString("semester"), DateTimeOffset.Parse(rootObject.GetNamedString("refreshed"), CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind)); return(user); } catch { return(null); } }
// Depth 2 Assignment (CBL, PBL, ...) private static void AssignSpecificDetails(CBLCourse course, JsonObject courseObject) { JsonObject marksObject = courseObject.GetNamedObject("marks"); double scored = 0, total = 0; double? temp; // Quiz Marks for (int i = 0; i < 3; i++) { course._quizMarks[i] = GetMarksInfo(course, "quiz" + (i + 1), marksObject); temp = course._quizMarks[i].Marks; if (temp != null) { scored += (double)temp; total += 5; } } // CAT Marks for (int i = 0; i < 2; i++) { course._catMarks[i] = GetMarksInfo(course, "cat" + (i + 1), marksObject); temp = course._quizMarks[i].Marks; if (temp != null) { scored += ((double)temp / 15); total += 15; } } // Assignment Marks course.AssignmentMarks = GetMarksInfo(course, "assignment", marksObject); temp = course.AssignmentMarks.Marks; if (temp != null) { scored += (double)temp; total += 5; } course.InternalMarksScored = scored; course.TotalMarksTested = total; }
// Depth 2 Assignment (CBL, PBL, ...) private static void AssignSpecificDetails(CBLCourse course, JsonObject courseObject) { }
/// <summary> /// Parses the Json string and returns a new User instance populated with all details. On failure, the method returns null. /// </summary> /// <param name="jsonString"></param> /// <returns></returns> public static User TryParseData(string jsonString) { try { User user = GetJsonStringOwner(jsonString); JsonObject rootObject = JsonObject.Parse(jsonString); ushort totalCredits = 0; JsonArray coursesArray = rootObject.GetNamedArray("courses"); foreach (JsonValue courseValue in coursesArray) { JsonObject courseObj = courseValue.GetObject(); Course course; int courseType = (int)courseObj.GetNamedNumber("course_type"); switch (courseType) { case 1: course = new CBLCourse(); break; case 2: course = new LBCCourse(); break; case 3: course = new PBLCourse(); break; case 4: course = new RBLCourse(); break; case 5: case 6: course = new PBCCourse(); break; default: continue; } AssignCourseDetails(course, courseObj); user.AddCourse(course); totalCredits += course.Credits; } user.CoursesMetadata = new CoursesMetadata( rootObject.GetNamedString("semester"), GetRefreshUTC(rootObject.GetNamedString("refreshed")), totalCredits); return user; } catch { return null; } }