private async void btnSync_Click(object sender, RoutedEventArgs e) { if (!Util.IsNetworkAvailable()) { Toast.Prompt("额,网络不可用,请检查网络配置!"); return; } using (new WaitPopup("正在同步笔记", this)) { try { await SyncCore.GetInst().SyncNoteAsync(NoteEntity, (type, msg) => { Dispatcher.BeginInvoke(() => { switch (type) { case SyncCompletedType.Note: NoteEntity = NoteDao.Inst.GetNoteById(NoteEntity.Id); ContentWebBrowser.NavigateToString(NoteEntity.Content); tbTitle.Text = NoteEntity.Title; Toast.Prompt("笔记修改成功!"); break; case SyncCompletedType.Failed: LoggerFactory.GetLogger().Error("同步笔记失败", (Exception)msg); Toast.Prompt("额,同步笔记失败,请稍后重试!"); break; } }); }); } catch (Exception ex) { LoggerFactory.GetLogger().Error("同步笔记失败", ex); Toast.Prompt("额,同步笔记失败,请稍后重试!"); } } }
private async Task loadNote() { using (var waitPopup = new WaitPopup("正在加载笔记", this)) { try { tbTitle.Text = NoteEntity.Title; tbNotebook.Text = NoteEntity.NotebookName; if (NoteUtil.NeedCache(NoteEntity.Content)) { if (Util.IsNetworkAvailable()) { waitPopup.SetTip("正在下载图片"); NoteEntity.Content = await SyncCore.GetInst().DownloadImageToLocalAsync(NoteEntity.NotePath, NoteEntity.Content, (count, totalCount) => { waitPopup.SetTip("正在下载图片:" + count + "/" + totalCount); }); NoteDao.Inst.ModifyIfExist(NoteEntity); ContentWebBrowser.NavigateToString(NoteEntity.Content); } else { Toast.Prompt("额,网络不可用,图片未能下载!"); } } else { ContentWebBrowser.NavigateToString(NoteEntity.Content); } } catch (Exception ex) { LoggerFactory.GetLogger().Error("", ex); Toast.Prompt("额,发生不可预知的错误,请稍后重试!"); } } }
private void webClient_OpenReadCompleted(object sender, DownloadStringCompletedEventArgs e) { if (e.Cancelled) { return; } Dispatcher.BeginInvoke(() => { value = JsonConvert.DeserializeObject <PostRoot>(e.Result); var caption = value.post.title.Split('.', '!', '?'); tbCaption.Text = caption[0]; // Need some smarter trim here, for O.Henry for example if (caption.Length > 1) { tbCaptionAuthor.Text = value.post.title.Replace(caption[0], "").Trim(new char[] { '.', '!', '?' }); } //if (NavigationContext.QueryString["b"] != null) //{ // value.post.content = "<div style='background-color:black;color:white;margin:0;padding:0'>" + value.post.content + "</div>"; //ContentWebBrowser.Background = new SolidColorBrush(Colors.Black); //} ShowReadDuration(value.post.content); ContentWebBrowser.NavigateToString(InjectedString(value.post.content)); pi.IsVisible = false; // Save downloaded story to HISTORY StoryRepository.AddNewStory(value.post.title, DateTime.Parse(value.post.date), value.post.url, value.post.content, false, null); ApplicationBarMenuItem mi = ApplicationBar.MenuItems[1] as ApplicationBarMenuItem; if (mi != null) { mi.Text = StoryRepository.CheckStoryTitle(value.post.title, true) ? RemoveFromFavoritsString : AddToFavoritsString; } }); }
void DetailsView_Loaded(object sender, RoutedEventArgs e) { string itemURL = ""; string randURI = ""; string title = ""; pi.IsIndeterminate = true; pi.IsVisible = true; SystemTray.SetProgressIndicator(this, pi); if (NavigationContext.QueryString.TryGetValue("title", out title)) { var story = StoryRepository.GetSingleStoryByTitle(title); if (story != null && !story.Details.Contains("[...")) { value = new PostRoot(); value.post = new Post(); value.post.title = story.Title; value.post.url = story.Link; ContentWebBrowser.NavigateToString(InjectedString(story.Details)); pi.IsVisible = false; var caption = story.Title.Split(new char[] { '.', '!', '?' }); tbCaption.Text = caption[0]; // Need some smarter trim here, for O.Henry for example if (caption.Length > 1) { tbCaptionAuthor.Text = value.post.title.Replace(caption[0], "").Trim(new char[] { '.', '!', '?' }); } return; } } wc = new WebClient(); wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_OpenReadCompleted); if (NavigationContext.QueryString.TryGetValue("item", out itemURL)) { itemURL = HttpUtility.UrlDecode(itemURL); try { wc.DownloadStringAsync(new Uri(itemURL + "?json=1")); } catch (Exception exception) { BugSenseHandler.Instance.LogError(exception); pi.IsVisible = false; } } if (NavigationContext.QueryString.TryGetValue("randURI", out randURI)) { try { string tURL = HttpUtility.UrlDecode(randURI); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(HttpUtility.UrlDecode(randURI))); request.Method = "HEAD"; request.AllowReadStreamBuffering = false; // Start the asynchronous request. request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request); } catch (Exception exception) { BugSenseHandler.Instance.LogError(exception); pi.IsVisible = false; } } }