public async override void Execute(object parameter) { var thread = (ForumThreadEntity)parameter; if (!thread.IsBookmark) { await AwfulDebugger.SendMessageDialogAsync( "In order to be notified of thread updates, the thread must be a bookmark.", new Exception("Not a bookmark")); return; } var mfd = new MainForumsDatabase(); try { await mfd.SetThreadNotified(thread); } catch (Exception ex) { await AwfulDebugger.SendMessageDialogAsync( "Failed to save thread to notifications table", ex); } }
private async Task Update(IBackgroundTaskInstance taskInstance) { var bookmarkManager = new MainForumsDatabase(); var forumThreadEntities = await bookmarkManager.RefreshBookmarkedThreads(); CreateBookmarkLiveTiles(forumThreadEntities); var notifyList = forumThreadEntities.Where(node => node.IsNotified); CreateToastNotifications(notifyList); }
public async override void Execute(object parameter) { var replyText = parameter as TextBox; if (replyText == null) { return; } var vm = Locator.ViewModels.NewThreadReplyVm; var db = new MainForumsDatabase(); await db.SaveThreadReplyDraft(replyText.Text, vm.ForumThreadEntity); }
public async override void Execute(object parameter) { var args = parameter as ForumThreadEntity ?? Locator.ViewModels.ThreadPageVm.ForumThreadEntity; if (args == null) { return; } var tabManager = new MainForumsDatabase(); var test = await tabManager.DoesTabExist(args); if (!args.IsBookmark && !test) { await tabManager.AddThreadToTabListAsync(args); } }
public async override void Execute(object parameter) { var replyText = parameter as TextBox; if (replyText == null) { return; } var db = new MainForumsDatabase(); var vm = Locator.ViewModels.NewThreadReplyVm; var draft = await db.LoadThreadDraftEntity(vm.ForumThreadEntity); if (draft == null) { return; } replyText.Text = draft.Draft; }
private async Task Update(IBackgroundTaskInstance taskInstance) { var bookmarkManager = new MainForumsDatabase(); var forumThreadEntities = await bookmarkManager.RefreshBookmarkedThreads(); if (_localSettings.Values.ContainsKey(Constants.BookmarkBackground)) { if ((bool)_localSettings.Values[Constants.BookmarkBackground]) { CreateBookmarkLiveTiles(forumThreadEntities); } } if (_localSettings.Values.ContainsKey(Constants.BookmarkNotifications)) { if ((bool)_localSettings.Values[Constants.BookmarkNotifications]) { var notifyList = forumThreadEntities.Where(node => node.IsNotified); CreateToastNotifications(notifyList); } } }
public async override void Execute(object parameter) { var args = parameter as ForumThreadEntity; if (args == null) { await AwfulDebugger.SendMessageDialogAsync("Thread navigation failed!:(", new Exception("Arguments are null")); return; } Locator.ViewModels.TabPageVm.TabThreads.Remove(args); var tabManager = new MainForumsDatabase(); await tabManager.RemoveThreadFromTabListAsync(args); var tabs = await tabManager.GetAllTabThreads(); if (tabs.Any()) { return; } Locator.ViewModels.TabPageVm.IsEmpty = true; }
public static async void WebView_ScriptNotify(object sender, NotifyEventArgs e) { var webview = sender as WebView; var threadEntity = Locator.ViewModels.ThreadPageVm.ForumThreadEntity; if (webview == null || threadEntity == null) { return; } try { string stringJson = e.Value; var command = JsonConvert.DeserializeObject <ThreadCommand>(stringJson); switch (command.Command) { case "openLink": await Windows.System.Launcher.LaunchUriAsync(new Uri(command.Id)); break; case "userProfile": var navUser = new NavigateToUserProfilePageCommand(); navUser.Execute(Convert.ToInt64(command.Id)); break; case "downloadImage": _url = command.Id; var message = string.Format("Do you want to download this image?{0}{1}", Environment.NewLine, command.Id); var msgBox = new MessageDialog(message, "Download Image"); var okButton = new UICommand("Yes") { Invoked = PictureOkButtonClick }; var cancelButton = new UICommand("No") { Invoked = PictureCancelButtonClick }; msgBox.Commands.Add(okButton); msgBox.Commands.Add(cancelButton); await msgBox.ShowAsync(); break; case "showPosts": await webview.InvokeScriptAsync("ShowHiddenPosts", new[] { string.Empty }); break; case "profile": //Frame.Navigate(typeof(UserProfileView), command.Id); break; case "openPost": var addIgnoredUserPostCommand = new AddIgnoredUserPostCommand(); var test = new WebViewCollection() { PostId = command.Id, WebView = webview }; try { addIgnoredUserPostCommand.Execute(test); } catch (Exception ex) { AwfulDebugger.SendMessageDialogAsync("Error getting post", ex); } break; case "post_history": //Frame.Navigate(typeof(UserPostHistoryPage), command.Id); break; case "rap_sheet": //Frame.Navigate(typeof(RapSheetView), command.Id); break; case "quote": var navigateToNewReplyViaQuoteCommand = new NavigateToNewReplyViaQuoteCommand(); navigateToNewReplyViaQuoteCommand.Execute(command.Id); break; case "edit": var navigateToEditPostPageCommand = new NavigateToEditPostPageCommand(); navigateToEditPostPageCommand.Execute(command.Id); break; case "scrollToPost": try { if (command.Id != null) { await webview.InvokeScriptAsync("ScrollToDiv", new[] { string.Concat("#postId", command.Id) }); } else if (!string.IsNullOrEmpty(threadEntity.ScrollToPostString)) { webview.InvokeScriptAsync("ScrollToDiv", new[] { threadEntity.ScrollToPostString }); } } catch (Exception) { Debug.WriteLine("Could not scroll to post..."); } break; case "markAsLastRead": try { var threadManager = new ThreadManager(); await threadManager.MarkPostAsLastReadAs(Locator.ViewModels.ThreadPageVm.ForumThreadEntity, Convert.ToInt32(command.Id)); int nextPost = Convert.ToInt32(command.Id) + 1; await webview.InvokeScriptAsync("ScrollToDiv", new[] { string.Concat("#postId", nextPost.ToString()) }); NotifyStatusTile.CreateToastNotification("Last Read", "Post marked as last read."); } catch (Exception ex) { AwfulDebugger.SendMessageDialogAsync("Could not mark thread as last read", ex); } break; case "setFont": if (_localSettings.Values.ContainsKey("zoomSize")) { _zoomSize = Convert.ToInt32(_localSettings.Values["zoomSize"]); webview.InvokeScriptAsync("ResizeWebviewFont", new[] { _zoomSize.ToString() }); } else { // _zoomSize = 20; } break; case "openThread": var query = Extensions.ParseQueryString(command.Id); if (query.ContainsKey("action") && query["action"].Equals("showPost")) { //var postManager = new PostManager(); //var html = await postManager.GetPost(Convert.ToInt32(query["postid"])); return; } Locator.ViewModels.ThreadPageVm.IsLoading = true; var newThreadEntity = new ForumThreadEntity() { Location = command.Id, ImageIconLocation = "/Assets/ThreadTags/noicon.png" }; Locator.ViewModels.ThreadPageVm.ForumThreadEntity = newThreadEntity; await Locator.ViewModels.ThreadPageVm.GetForumPostsAsync(); var tabManager = new MainForumsDatabase(); var test2 = await tabManager.DoesTabExist(newThreadEntity); if (!test2) { await tabManager.AddThreadToTabListAsync(newThreadEntity); } Locator.ViewModels.ThreadPageVm.LinkedThreads.Add(newThreadEntity); break; default: var msgDlg = new MessageDialog("Not working yet!") { DefaultCommandIndex = 1 }; await msgDlg.ShowAsync(); break; } } catch (Exception ex) { Debug.WriteLine(ex); } }