public static void RunCatalogWindow() { var globalData = CourseTreeData.Load(currentDirectory); var model = new Tuto.TreeEditor.PublishViewModel(globalData); var wnd = new Tuto.TreeEditor.PublishPanel(); wnd.DataContext = model; wnd.Closed += wnd_Closed; Application.MainWindow.Hide(); wnd.Show(); }
static CourseTreeData Convert(GlobalData data) { var converted = new CourseTreeData(); converted.Directory = data.GlobalDataFolder; converted.Videos = new List<VideoPublishSummary>(); converted.Structure=new CourseStructure(); foreach (var e in data.VideoData) { converted.Videos.Add(new VideoPublishSummary(e)); if (e.TopicGuid != null) converted.Structure.VideoToTopicRelations.Add(new VideoToTopicRelation { VideoGuid = e.Guid, TopicGuid = e.TopicGuid, NumberInTopic = e.NumberInTopic }); } converted.Structure.RootTopic = data.TopicsRoot; return converted; }
static CourseTreeData Convert(GlobalData data) { var converted = new CourseTreeData(); converted.Directory = data.GlobalDataFolder; converted.Videos = new List <VideoPublishSummary>(); converted.Structure = new CourseStructure(); foreach (var e in data.VideoData) { converted.Videos.Add(new VideoPublishSummary(e)); if (e.TopicGuid != null) { converted.Structure.VideoToTopicRelations.Add(new VideoToTopicRelation { VideoGuid = e.Guid, TopicGuid = e.TopicGuid, NumberInTopic = e.NumberInTopic }); } } converted.Structure.RootTopic = data.TopicsRoot; return(converted); }
public PublishViewModel(CourseTreeData globalData) { this.givenVideos = globalData.Videos; Root = new TopicWrap[] { new TopicWrap(globalData.Structure.RootTopic) }; UnassignedVideos = new ObservableCollection<VideoWrap>(); foreach (var e in globalData.Videos.Where(z=>!globalData.Structure.VideoToTopicRelations.Any(x=>x.VideoGuid==z.Guid))) UnassignedVideos.Add(new VideoWrap(e)); foreach(var e in Root[0].Subtree.OfType<TopicWrap>()) foreach (var v in globalData.Structure.VideoToTopicRelations.Where(z => z.TopicGuid == e.Topic.Guid).OrderBy(z => z.NumberInTopic)) { var pv = globalData.Videos.Where(z=>z.Guid==v.VideoGuid).FirstOrDefault(); if (pv==null) continue; var vw = new VideoWrap(pv); e.Items.Add(vw); vw.Parent = e; } AddCommand = new RelayCommand(Add, () => SelectedItem != null && SelectedItem is TopicWrap); RemoveCommand = new RelayCommand(Remove, () => SelectedItem != null && SelectedItem != Root[0]); DeleteCommand = new RelayCommand(DeleteFromList, () => SelectedItemInUnassignedList != null); }