Esempio n. 1
0
 public TopicWrap(Topic topic)
 {
     this.Topic = topic;
     foreach (var e in topic.Items)
     {
         var child = new TopicWrap(e);
         Items.Add(child);
         child.Parent = this;
     }
 }
Esempio n. 2
0
 public TopicWrap(Topic topic)
 {
     this.Topic = topic;
     foreach (var e in topic.Items)
     {
         var child = new TopicWrap(e);
         Items.Add(child);
         child.Parent = this;
     }
 }
Esempio n. 3
0
        public PublishViewModel(Topic topicRoot, List<FinishedVideo> videos)
        {
            Root = new TopicWrap[] { new TopicWrap(topicRoot) };
            UnassignedVideos = new ObservableCollection<VideoWrap>();
            foreach (var e in videos.Where(z => z.TopicGuid == Guid.Empty))
                UnassignedVideos.Add(new VideoWrap(e));
            foreach(var e in Root[0].Subtree.OfType<TopicWrap>())
                foreach (var v in videos.Where(z => z.TopicGuid == e.Topic.Guid).OrderBy(z => z.NumberInTopic))
                {
                    var vw = new VideoWrap(v);
                    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);
        }
Esempio n. 4
0
 public void Commit(TopicWrap wrap)
 {
     wrap.Topic.Items.Clear();
     foreach (var e in wrap.Items)
     {
         if (e is TopicWrap)
         {
             var tw = e as TopicWrap;
             Commit(tw);
             wrap.Topic.Items.Add(tw.Topic);
             continue;
         }
         if (e is VideoWrap)
         {
             var vw = e as VideoWrap;
             vw.Video.TopicGuid     = wrap.Topic.Guid;
             vw.Video.NumberInTopic = wrap.Items.IndexOf(vw);
         }
     }
 }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        public PublishViewModel(Topic topicRoot, List <FinishedVideo> videos)
        {
            Root             = new TopicWrap[] { new TopicWrap(topicRoot) };
            UnassignedVideos = new ObservableCollection <VideoWrap>();
            foreach (var e in videos.Where(z => z.TopicGuid == Guid.Empty))
            {
                UnassignedVideos.Add(new VideoWrap(e));
            }
            foreach (var e in Root[0].Subtree.OfType <TopicWrap>())
            {
                foreach (var v in videos.Where(z => z.TopicGuid == e.Topic.Guid).OrderBy(z => z.NumberInTopic))
                {
                    var vw = new VideoWrap(v);
                    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);
        }
Esempio n. 8
0
		public void Commit(TopicWrap wrap, CourseStructure structure, List<VideoPublishSummary> videos)
		{
			wrap.Topic.Items.Clear();
			foreach (var e in wrap.Items)
			{
				if (e is TopicWrap)
				{
					var tw = e as TopicWrap;
					Commit(tw,structure,videos);
					wrap.Topic.Items.Add(tw.Topic);
					continue;
				}
				if (e is VideoWrap)
				{
					var vw = e as VideoWrap;
					var relation = new VideoToTopicRelation();
					relation.TopicGuid = wrap.Topic.Guid;
					relation.NumberInTopic = wrap.Items.IndexOf(vw);
					relation.VideoGuid = vw.Video.Guid;
					structure.VideoToTopicRelations.Add(relation);
                    videos.Add(vw.Video);
				}
			}
		}
Esempio n. 9
0
 public void Commit(TopicWrap wrap)
 {
     wrap.Topic.Items.Clear();
     foreach (var e in wrap.Items)
     {
         if (e is TopicWrap)
         {
             var tw = e as TopicWrap;
             Commit(tw);
             wrap.Topic.Items.Add(tw.Topic);
             continue;
         }
         if (e is VideoWrap)
         {
             var vw = e as VideoWrap;
             vw.Video.TopicGuid = wrap.Topic.Guid;
             vw.Video.NumberInTopic = wrap.Items.IndexOf(vw);
         }
     }
 }
Esempio n. 10
0
 public void Commit(TopicWrap wrap, CourseStructure structure)
 {
     wrap.Topic.Items.Clear();
     foreach (var e in wrap.Items)
     {
         if (e is TopicWrap)
         {
             var tw = e as TopicWrap;
             Commit(tw,structure);
             wrap.Topic.Items.Add(tw.Topic);
             continue;
         }
         if (e is VideoWrap)
         {
             var vw = e as VideoWrap;
             var relation = new VideoToTopicRelation();
             relation.TopicGuid = wrap.Topic.Guid;
             relation.NumberInTopic = wrap.Items.IndexOf(vw);
             relation.VideoGuid = vw.Video.Guid;
             structure.VideoToTopicRelations.Add(relation);
         }
     }
 }