public async Task <CourseVersion> AddCourseVersion(string courseId, Guid versionId, string authorId) { var courseVersion = new CourseVersion { Id = versionId, CourseId = courseId, LoadingTime = DateTime.Now, PublishTime = null, AuthorId = authorId, }; db.CourseVersions.Add(courseVersion); await db.SaveChangesAsync(); return(courseVersion); }
public async Task <CourseVersion> AddCourseVersion(string courseId, Guid versionId, string authorId, string pathToCourseXml, string repoUrl, string commitHash, string description) { var courseVersion = new CourseVersion { Id = versionId, CourseId = courseId, LoadingTime = DateTime.Now, PublishTime = null, AuthorId = authorId, PathToCourseXml = pathToCourseXml, CommitHash = commitHash, Description = description, RepoUrl = repoUrl }; db.CourseVersions.Add(courseVersion); await db.SaveChangesAsync(); return(courseVersion); }
private void ReloadCourseIfLoadedAndPublishedVersionsAreDifferent(string courseId, CourseVersion publishedVersion) { lock (@lock) { var isCourseLoaded = loadedCourseVersions.TryGetValue(courseId.ToLower(), out var loadedVersionId); if ((isCourseLoaded && loadedVersionId != publishedVersion.Id) || !isCourseLoaded) { var actual = isCourseLoaded ? loadedVersionId.ToString() : "<none>"; log.Info($"Загруженная версия курса {courseId} отличается от актуальной ({actual} != {publishedVersion.Id}). Обновляю курс."); ReloadCourse(courseId); NotifyCourseChanged(courseId); } loadedCourseVersions[courseId.ToLower()] = publishedVersion.Id; } }