예제 #1
0
        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("额,同步笔记失败,请稍后重试!");
                }
            }
        }
예제 #2
0
        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("额,发生不可预知的错误,请稍后重试!");
                }
            }
        }
예제 #3
0
        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;
                }
            });
        }
예제 #4
0
        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;
                }
            }
        }