Beispiel #1
0
        /// <summary>
        /// マイリスト情報を再取得します。
        /// </summary>
        public void Reload()
        {
            if (string.IsNullOrWhiteSpace(Word))
            {
                ServiceFactory.MessageService.Error("検索ワードが入力されていません。");
                return;
            }

            _Videos.Clear();

            if (Source != null)
            {
                Source.PropertyChanged -= OnPropertyChanged;
                Source = null;
            }

            Source = new MylistModel(Word, OrderBy);
            Source.PropertyChanged += OnPropertyChanged;

            this.MylistTitle       = Source.MylistTitle;
            this.MylistCreator     = Source.MylistCreator;
            this.MylistDescription = Source.MylistDescription;
            this.UserId            = Source.UserId;
            this.UserThumbnailUrl  = Source.UserThumbnailUrl;
            //this.UserThumbnail = Source.UserThumbnail;
            this.MylistDate = Source.MylistDate;

            this.Videos.Clear();
            foreach (var video in Source.Videos)
            {
                this.Videos.Add(video);
            }

            ServiceFactory.MessageService.Debug(Word);
        }
Beispiel #2
0
        /// <summary>
        /// マイリスト情報をマージします。
        /// </summary>
        /// <param name="mylist">マイリスト情報</param>
        public void MylistMerge(MylistModel mylist)
        {
            if (Mylists.Any(m => m.MylistId == mylist.MylistId))
            {
                var m = Mylists.First(temp => temp.MylistId == mylist.MylistId);

                // 更新要素を再設定
                m.MylistDate = mylist.MylistDate;
                m.Videos.Clear();
                foreach (var video in mylist.Videos)
                {
                    m.Videos.Add(video);
                }
            }
            else
            {
                // 追加
                Mylists.Add(mylist);
            }
        }
Beispiel #3
0
        /// <summary>
        /// マイリスト情報を取得します。
        /// </summary>
        /// <param name="id">取得したいマイリストID</param>
        /// <param name="reload">既存情報をリロードするか</param>
        /// <returns>マイリスト情報</returns>
        public MylistModel GetMylist(string id, bool reload = false)
        {
            var mylist = Mylists.FirstOrDefault(m => m.MylistId == id);

            if (mylist != null)
            {
                if (reload)
                {
                    mylist.Reload();
                }
                return(mylist);
            }
            else
            {
                var tmp = new MylistModel(id);

                Mylists.Add(tmp);

                return(tmp);
            }
        }
Beispiel #4
0
        public void Reload()
        {
            // ログインする。
            LoginModel.Instance.Login();

            // ログインできなかった場合
            if (!LoginModel.Instance.IsLogin)
            {
                ServiceFactory.MessageService.Error("Login error");
                return;
            }

            Mylists.Clear();

            var url = string.Format(Constants.MylistOfMe);
            var txt = GetSmileVideoHtmlText(url);

            ServiceFactory.MessageService.Debug(txt);

            // TODO エラーチェック

            var json = DynamicJson.Parse(txt);

            foreach (dynamic data in json["mylistgroup"])
            {
                if ((string)data["public"] == "1")
                {
                    // マイリスト情報を取得する。
                    MylistModel mylist = MylistStatusModel.Instance.GetMylist(data["id"]);

                    // マイリスト情報を状態に追加
                    MylistStatusModel.Instance.MylistMerge(mylist);

                    // 自身のリストに追加
                    Mylists.Add(mylist.MylistId);
                }
            }
        }