Exemple #1
0
        public void patch_putsNewVideos_toExistingUnsortedChapter()
        {
            var videoGuid  = Utils.NewNormalizedGuid();
            var videoGuid2 = Utils.NewNormalizedGuid();
            var edxCourse  = ConvertForTestsCourseToEdx(new Dictionary <string, string> {
                { youtubeIdFromCourse, videoGuid }
            });
            var olxPath = string.Format("{0}/{1}", testFolderName, course.Id);

            edxCourse.Save(olxPath);

            var patcher = new OlxPatcher(olxPath);

            var videoDict = new Dictionary <string, Tuple <string, string> >
            {
                { videoGuid, Tuple.Create("QWFuk3ymXxc", "") },
                { videoGuid2, Tuple.Create("w8_GlqSkG-U", "") }
            };

            patcher.PatchComponents(edxCourse, GetVideoComponentFromDictionary(videoDict));

            videoDict = new Dictionary <string, Tuple <string, string> >
            {
                { videoGuid, Tuple.Create("QWFuk3ymXxc", "") },
                { videoGuid2, Tuple.Create("w8_GlqSkG-U", "") },
                { Utils.NewNormalizedGuid(), Tuple.Create("qTnKi67AAlg", "") }
            };

            patcher.PatchComponents(edxCourse, GetVideoComponentFromDictionary(videoDict));

            var edxCourse2 = EdxCourse.Load(olxPath);

            Assert.AreEqual("Unsorted", edxCourse2.CourseWithChapters.Chapters[1].DisplayName);
            Assert.AreEqual(2, edxCourse2.CourseWithChapters.Chapters[1].Sequentials.Length);
        }
        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
                    );
            }
        }