Beispiel #1
0
        public void SetUp()
        {
            ///・名前
            ///各IDを漢数字に置き換えたもの
            ///・ツリー構造
            ///親(1)─子(2)─子(4)─子(5)
            ///     └子(3)       ┠子(6)
            ///                   └子(7)
            var first = new STypes::Playlist()
            {
                Id = 1, IsRoot = true, PlaylistName = "一", IsTemporary = true
            };
            var second = new STypes::Playlist()
            {
                Id = 2, PlaylistName = "二", IsDownloadFailedHistory = true
            };
            var third = new STypes::Playlist()
            {
                Id = 3, PlaylistName = "三", IsDownloadSucceededHistory = true
            };
            var fourth = new STypes::Playlist()
            {
                Id = 4, PlaylistName = "四"
            };
            var fifth = new STypes::Playlist()
            {
                Id = 5, PlaylistName = "五"
            };
            var sixth = new STypes::Playlist()
            {
                Id = 6, PlaylistName = "六"
            };
            var seventh = new STypes::Playlist()
            {
                Id = 7, PlaylistName = "七"
            };

            //親を設定
            second.ParentPlaylist  = first;
            third.ParentPlaylist   = first;
            fourth.ParentPlaylist  = second;
            fifth.ParentPlaylist   = fourth;
            sixth.ParentPlaylist   = fourth;
            seventh.ParentPlaylist = fourth;

            //全て追加
            var playlists = new List <STypes::Playlist>()
            {
                first, second, third, fourth, fifth, sixth, seventh
            };

            this.handler = new PlaylistTreeHandler(new PlaylistSettingsHandlerStab());
            this.handler.Initialize(playlists.Select(p => NonBindableTreePlaylistInfo.ConvertToTreePlaylistInfo(p)).ToList());
        }
        public void SetUp()
        {
            this.playlistStoreHandler = new PlaylistStoreHandlerStab();
            ITreePlaylistInfo?p = new NonBindableTreePlaylistInfo()
            {
                Id = 1
            };

            this.cStab = new CurrentStab();
            cStab.SelectedPlaylist.Value         = p;
            this.videoListContainer              = new VideoListContainer(new PlaylistHandlerStub(), new VideoHandlerStab(), new VideoListRefresherStab(), this.cStab, new LoggerStub());
            this.lastVIdeoNicoID                 = null;
            this.videoListContainer.ListChanged += (_, e) =>
            {
                this.lastChangeType  = e.ChangeType;
                this.lastVIdeoNicoID = e.Data?.NiconicoId.Value;
            };
        }
        /// <summary>
        /// Xenoのプレイリストをアプリケーション側で使えるデータに変換する
        /// </summary>
        /// <param name="playlist"></param>
        /// <param name="recurse"></param>
        /// <returns></returns>
        public ITreePlaylistInfo ConvertToTreePlaylistInfo(IXenoPlaylist playlist, bool recurse = true)
        {
            var converted = new NonBindableTreePlaylistInfo()
            {
                Name             = new ReactiveProperty <string>(playlist.Name),
                IsRemotePlaylist = playlist.IsChannel,
                RemoteType       = playlist.IsChannel ? RemoteType.Channel : RemoteType.None,
                RemoteId         = playlist.ChannelId ?? string.Empty,
            };

            converted.Videos.AddRange(playlist.Videos.Select(v => {
                var video = this.videoInfoContainer.GetVideo(v);
                return(video);
            }));

            if (playlist.ChildPlaylists.Count > 0 && recurse)
            {
                converted.Children.Addrange(playlist.ChildPlaylists.Select(c => this.ConvertToTreePlaylistInfo(c, true)));
            }

            return(converted);
        }
Beispiel #4
0
        public void データベース型からTreePlaylistInfo型への変換()
        {
            var storeData = new STypes::Playlist()
            {
                Id             = 1,
                ParentPlaylist = new STypes.Playlist()
                {
                    Id = 1
                },
                IsRoot       = true,
                PlaylistName = "テスト"
            };
            var playlistInfo = NonBindableTreePlaylistInfo.ConvertToTreePlaylistInfo(storeData);

            //プレイリスト名
            Assert.AreEqual("テスト", storeData.PlaylistName);
            //ID
            Assert.AreEqual(playlistInfo.Id, 1);
            //親のID
            Assert.AreEqual(playlistInfo.ParentId, 1);
            //ルートフラグ
            Assert.IsTrue(playlistInfo.IsRoot);
        }