Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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;
            }
        }