private static void AssignSpecificDetails(PBCCourse course, JsonObject courseObject) { if (courseObject.GetNamedValue("project_title").ValueType != JsonValueType.Null) course.ProjectTitle = courseObject.GetNamedString("project_title"); else course.ProjectTitle = 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 = 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; } }