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