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}"); }
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))); }
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); }
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); }
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 }); }
public async Task SaveCourseFile(string fileName, int courseId, CourseFileTypeEnum fileType) { await _courseProvider.SaveCourseFile(fileName, courseId, fileType); }