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 ); } }