private async Task AddHistory(string id) { using (var accessor = DbAccessor.GetAccessor()) using (var control = accessor.GetCommand()) { var history = new TTemporaryHistory(id, DateTime.Now); await control.InsertOrReplaceTemporaryHistory(history); Histories.Add(history); } }
/// <summary> /// 再表示処理 /// </summary> private async void Reload(object sender, EventArgs e) { Videos.Clear(); using (var accessor = DbAccessor.GetAccessor()) using (var control = accessor.GetCommand()) { foreach (var vvh in await control.GetVideoHistoryView(int.Parse(Sort.SelectedItem.Value))) { Videos.Add(new VideoHistoryViewModel(await VideoModel.CreateInstance(vvh), vvh.Count)); } } }
/// <summary> /// Viewを追加します。 /// </summary> /// <param name="view">view</param> public async Task AddHistory(TVideoHistory view) { Histories.Add(view); using (var accessor = DbAccessor.GetAccessor()) using (var control = accessor.GetCommand()) { await control.BeginTransaction(); await control.InsertOrReplaceVideoHistory(view); await control.Commit(); } }
public async Task AddFavorite(TFavorite favorite) { if (!Favorites.Any(f => f.Mylist == favorite.Mylist)) { using (var accessor = DbAccessor.GetAccessor()) using (var control = accessor.GetCommand()) { Favorites.Add(favorite); await control.BeginTransaction(); await control.InsertOrReplaceFavorite(favorite); await control.Commit(); } } }
public async Task RemoveFavorite(TFavorite favorite) { if (!Favorites.Any(f => f.Mylist == favorite.Mylist)) { using (var accessor = DbAccessor.GetAccessor()) using (var control = accessor.GetCommand()) { Favorites.Remove(Favorites.First(f => f.Mylist == favorite.Mylist)); await control.BeginTransaction(); await control.DeleteFavorite(favorite); await control.Commit(); } } }
/// <summary> /// 画面表示時の処理 /// </summary> private async void Loaded_Command(object dummy) { await ShowProgressAsync(async (pdc) => { pdc.SetIndeterminate(); pdc.SetTitle("初期化中"); using (var accessor = DbAccessor.GetAccessor()) using (var control = accessor.GetCommand()) { pdc.SetMessage("データベースの初期化中"); // 全体の初期化 await control.BeginTransaction(); await control.Initialize(); await control.Commit(); pdc.SetMessage("設定情報の初期化中"); // SettingModelの初期化 SettingModel.Initialize(await control.GetSetting()); pdc.SetMessage("履歴情報の初期化"); // ViewModelの初期化 await SearchVideoByHistoryModel.Initialize(await control.GetVideoHistory()); pdc.SetMessage("テンポラリの初期化"); // Temporaryの初期化 await SearchVideoByTemporaryModel.Initialize(await control.GetTemporaryHistory()); pdc.SetMessage("お気に入りの初期化"); // SearchMylistModelの初期化 SearchMylistModel.Initialize(await control.GetFavorite()); pdc.SetMessage("カレント設定"); // カレント設定 Current = new SearchVideoByRankingViewModel(); } }); }
private async void Change_SelectedItem() { var index = Items.IndexOf(SelectedItem).ToString(); if (SettingModel.Instance.GetSetting(Key) == index) { return; } using (var accessor = DbAccessor.GetAccessor()) using (var control = accessor.GetCommand()) { await control.BeginTransaction(); await control.InsertOrReplaceSetting(new TSetting(Key, index)); await control.Commit(); } }
public async Task Reload() { using (var accessor = DbAccessor.GetAccessor()) using (var control = accessor.GetCommand()) { foreach (var favorite in Favorites) { try { var mylist = Mylists.First(m => m.MylistId == favorite.Mylist); var videos = await mylist.GetVideos(); var targets = videos .Where(video => favorite.Date < video.StartTime) .Where(video => !SearchVideoByTemporaryModel.Instance.Videos.Any(v => v.VideoId == video.VideoId)) .ToArray(); if (!targets.Any()) { continue; } foreach (var video in targets) { await SearchVideoByTemporaryModel.Instance.AddVideo(video); } favorite.Date = targets.Max(video => video.StartTime); } catch { Console.WriteLine(); } } await control.BeginTransaction(); await control.InsertOrReplaceFavorite(Favorites.ToArray()); await control.Commit(); } }
private async Task RefreshAsync() { var results = new List <string>(); // 履歴に残っている動画のリスト(ID重複削除) var targets = Histories .Select(history => history.VideoId) .Distinct() .ToArray(); foreach (var id in targets) { var v = await VideoModel.CreateInstance(id); if (v.Status == VideoStatus.Delete) { // 削除済の履歴はDBからも削除 results.Add(id); } } if (!results.Any()) { return; } using (var accessor = DbAccessor.GetAccessor()) using (var control = accessor.GetCommand()) { await control.BeginTransaction(); await control.DeleteVideoHistory(results.ToArray()); await control.Commit(); } }