public void Setup() { var examplesFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "\\ExampleJson"); FileIOPermission fileIoPermission = new FileIOPermission(FileIOPermissionAccess.Read, examplesFolder); fileIoPermission.Demand(); var transcriptJson = File.ReadAllText(examplesFolder + "\\Transcript.json"); transcript = JsonConvert.DeserializeObject<Transcript>(transcriptJson); var courseJson = File.ReadAllText(examplesFolder + "\\Course.json"); course = JsonConvert.DeserializeObject<Course>(courseJson); var courseModulesJson = File.ReadAllText(examplesFolder + "\\CourseModules.json"); course.CourseModules = JsonConvert.DeserializeObject<List<CourseModule>>(courseModulesJson); }
public IHttpActionResult CourseData(string coursename) { Course course = new Course(); String json = String.Empty; try { using (var webClient = new WebClient()) { json = webClient.DownloadString(string.Format(Constants.COURSE_DATA_URL, coursename)); course = JsonConvert.DeserializeObject<Course>(json); NameValueCollection postData = new NameValueCollection() { { "courseId", coursename } }; byte[] responsebytes = webClient.UploadValues(Constants.COURSE_PAYLOAD_DATA_URL, postData); json = Encoding.UTF8.GetString(responsebytes); var coursePayload = JsonConvert.DeserializeObject<CoursePayload>(json); course.SupportsWideScreenVideoFormats = coursePayload.SupportsWideScreenVideoFormats; json = webClient.DownloadString(string.Format(Constants.COURSE_CONTENT_DATA_URL, coursename)); course.CourseModules = JsonConvert.DeserializeObject<List<CourseModule>>(json); SetupAuthenticationCookie(webClient); // TODO: check if the user has access to exercise files. //json = webClient.DownloadString(string.Format(Constants.COURSE_EXERCISE_FILES_URL, coursename)); //course.ExerciseFiles = JsonConvert.DeserializeObject<ExerciseFiles>(json); json = webClient.DownloadString(string.Format(Constants.COURSE_TRANSCRIPT_URL, coursename)); var transcript = JsonConvert.DeserializeObject<Transcript>(json); course.CourseModules.ForEachWithIndex((module, moduleIndex) => { module.Clips.ForEachWithIndex((clip, clipIndex) => { clip.TranscriptClip = transcript.Modules[moduleIndex].Clips[clipIndex]; }); }); } } catch (Exception exception) { return HandleException(exception); } return Ok(course); }