public async Task <ActionResult> InitialExport(string courseId, int stepikCourseId, string newLessonsSlidesIds, string xQueueName, string uploadVideo) { var returnUrl = Url.Action("InitialExportOptions", "Stepik", new { courseId = courseId, stepikCourseId = stepikCourseId }); /* TODO (andgein): following 4 lines are copy-paste*/ var oauthAuthorizationUrl = OAuth.GetAuthorizationUrl(stepikClientId, GetStepikOAuthRedirectUri(), OAuth.EncryptState(returnUrl)); var client = await GetAuthenticatedStepikApiClient(); if (client == null) { return(Redirect(oauthAuthorizationUrl)); } var exporter = new CourseExporter(client.AccessToken); var course = courseManager.GetCourse(courseId); var exportOptions = new CourseInitialExportOptions(stepikCourseId, xQueueName, ConvertStringToGuidList(newLessonsSlidesIds).ToList()) { VideoUploadOptions = (UploadVideoToStepikOption)Enum.Parse(typeof(UploadVideoToStepikOption), uploadVideo) }; var thread = new Thread(async() => await DoInitialExport(exporter, course, exportOptions)); thread.Start(); return(View("ExportStarted", course)); }
private Task DoInitialExport(CourseExporter exporter, Course course, CourseInitialExportOptions exportOptions) { return(DoExport(exporter, course, exportOptions, true)); }