Пример #1
0
        public override void Patch(OlxPatcher patcher, Config config, Profile profile, EdxCourse edxCourse)
        {
            var videoJson = string.Format("{0}/{1}", Dir, config.Video);
            var video     = File.Exists(videoJson)
                                ? JsonConvert.DeserializeObject <Video>(File.ReadAllText(videoJson))
                                : new Video {
                Records = new Record[0]
            };

            VideoHistory.UpdateHistory(Dir, video);
            var guids = Guids == null ? null : Guids.Split(',').Select(Utils.GetNormalizedGuid).ToList();

            if (config.Video != null && File.Exists(string.Format("{0}/{1}", Dir, config.Video)))
            {
                var videoComponents = video
                                      .Records
                                      .Where(x => guids == null || guids.Contains(Utils.GetNormalizedGuid(x.Guid)))
                                      .Select(x => new VideoComponent(Utils.GetNormalizedGuid(x.Guid), x.Data.Name, x.Data.Id));

                patcher.PatchComponents(
                    edxCourse,
                    videoComponents,
                    guids != null || !SkipExistingGuids
                    );
            }
        }
Пример #2
0
        public override void Patch(OlxPatcher patcher, Config config, Profile profile, EdxCourse edxCourse)
        {
            var ulearnDir = new DirectoryInfo(string.Format("{0}/{1}", Dir, config.ULearnCourseId));

            Console.WriteLine("Loading Ulearn course from {0}", ulearnDir.Name);
            var ulearnCourse = new CourseLoader().Load(ulearnDir);

            Console.WriteLine("Patching");
            var videoJson = string.Format("{0}/{1}", Dir, config.Video);
            var video     = File.Exists(videoJson)
                                ? JsonConvert.DeserializeObject <Video>(File.ReadAllText(videoJson))
                                : new Video {
                Records = new Record[0]
            };
            var videoHistory = VideoHistory.UpdateHistory(Dir, video);
            var videoGuids   = videoHistory.Records
                               .SelectMany(x => x.Data.Select(y => Tuple.Create(y.Id, x.Guid.GetNormalizedGuid())))
                               .ToDictionary(x => x.Item1, x => x.Item2);

            var guids = Guids?.Split(',').Select(Utils.GetNormalizedGuid).ToList();

            patcher.PatchVerticals(
                edxCourse,
                ulearnCourse.Slides
                .Where(s => !config.IgnoredUlearnSlides.Select(Guid.Parse).Contains(s.Id))
                .Where(s => guids == null || guids.Contains(s.NormalizedGuid))
                .Select(s => s.ToVerticals(
                            ulearnCourse.Id,
                            profile.UlearnUrl,
                            videoGuids,
                            config.LtiId,
                            CoursePackageRoot
                            ).ToArray()),
                guids != null || !SkipExistingGuids
                );
            if (Config.EmitSequentialsForInstructorNotes)
            {
                PatchInstructorsNotes(edxCourse, ulearnCourse, patcher.OlxPath);
            }
        }