Beispiel #1
0
        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));
        }
Beispiel #2
0
 private Task DoInitialExport(CourseExporter exporter, Course course, CourseInitialExportOptions exportOptions)
 {
     return(DoExport(exporter, course, exportOptions, true));
 }