コード例 #1
0
        public string GetCourseFolder(string courseId, string language, CourseFileTypeEnum type)
        {
            var typeFolder = type == CourseFileTypeEnum.Preview ? "preview" : "prod";


            return($"{Config.RootFolder}\\{Config.CoursesFolderName}\\{typeFolder}\\{courseId.ToCodename()}\\{language}");
        }
コード例 #2
0
        public GenerateLogModel GetCourseLog(string courseId, string language, CourseFileTypeEnum type)
        {
            var courseDir   = GetCourseFolder(courseId, language, type);
            var logFilePath = Path.Combine(courseDir, Config.CourseLogFilename);

            if (!File.Exists(logFilePath))
            {
                return(null);
            }

            return(JsonConvert.DeserializeObject <GenerateLogModel>(File.ReadAllText(logFilePath)));
        }
コード例 #3
0
        public async Task SaveCourseFile(string fileName, int courseId, CourseFileTypeEnum fileType)
        {
            var courseFile = new CourseFileDto
            {
                CourseId = courseId,
                File     = new FileDto
                {
                    Name     = fileName,
                    FileType = (int)fileType,
                }
            };

            await _cespRepository.SaveCourseFile(courseFile);
        }
コード例 #4
0
        public void CreateCourseJsonFiles(string courseId, string language, CourseFileTypeEnum type, AdaptCourseData courseData)
        {
            var courseDir = GetCourseFolder(courseId, language, type);

            LogGenerateAction(() =>
            {
                // make sure directory for course exists
                Directory.CreateDirectory(courseDir);

                // course data
                CreateJsonFile(courseDir, Config.ContentObjectsFilename, FixEmptyRichTextFields(JsonConvert.SerializeObject(courseData.Pages)));
                CreateJsonFile(courseDir, Config.ArticlesFilename, FixEmptyRichTextFields(JsonConvert.SerializeObject(courseData.Articles)));
                CreateJsonFile(courseDir, Config.BlocksFilename, FixEmptyRichTextFields(JsonConvert.SerializeObject(courseData.Blocks)));
                CreateJsonFile(courseDir, Config.ComponentsFilename, FixEmptyRichTextFields(JsonConvert.SerializeObject(courseData.Components)));

                // course config
                CreateJsonFile(courseDir, Config.CourseFilename, CombineDefaultAndCustomCourseConfig(courseData.Course));
            }, courseDir, courseData);
        }
コード例 #5
0
        public async Task <GenerateResultModel> GeneratePackageDataAsync(string courseId, bool usePreview, CourseFileTypeEnum type)
        {
            if (string.IsNullOrEmpty(courseId))
            {
                throw new NotSupportedException($"Please specify '{nameof(courseId)}' parameter");
            }

            var course = await CourseService.GetPackageAsync(courseId, usePreview);

            var pages = await CourseService.GetPagesAsync(courseId, usePreview);

            var courseData = AdaptService.GenerateCourseData(pages, course);

            // (re)generate course json files
            FileService.CreateCourseJsonFiles(course.CourseId, course.Language?.FirstOrDefault()?.Codename, type, courseData);

            return(new GenerateResultModel()
            {
                Course = course,
                CourseData = courseData
            });
        }
コード例 #6
0
 public async Task SaveCourseFile(string fileName, int courseId, CourseFileTypeEnum fileType)
 {
     await _courseProvider.SaveCourseFile(fileName, courseId, fileType);
 }