public static async Task MakeLikeAsync(ICanChangeLikModel model, Windows.UI.Core.CoreDispatcher dispatcher, SymbolIcon like, SymbolIcon coloredLike) { if (model == null) { return; } bool isReply = model is FeedReplyModel; var u = UriProvider.GetUri( model.Liked ? UriType.OperateUnlike : UriType.OperateLike, isReply ? "Reply" : string.Empty, model.Id); var o = (JObject) await GetDataAsync(u, true); await dispatcher?.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { model.Liked = !model.Liked; if (isReply) { model.Likenum = o.ToString().Replace("\"", string.Empty); } else if (o != null) { model.Likenum = $"{o.Value<int>("count")}"; } if (like != null) { like.Visibility = model.Liked ? Visibility.Visible : Visibility.Collapsed; } if (coloredLike != null) { coloredLike.Visibility = model.Liked ? Visibility.Collapsed : Visibility.Visible; } }); }
private async Task MakeFeed(UriType type, HttpMultipartFormDataContent content) { try { if (type == UriType.CreateFeed) { if (await DataHelper.PostDataAsync(UriProvider.GetUri(type), content) != null) { SendSuccessful(); } } else { if (await DataHelper.PostDataAsync(UriProvider.GetUri(type, FeedId), content) != null) { SendSuccessful(); } } } catch (CoolapkMessageException cex) { UIHelper.ShowMessage(cex.Message); if (cex.MessageStatus == CoolapkMessageException.RequestCaptcha) { var dialog = new CaptchaDialog(); await dialog.ShowAsync(); } } }
private async void SearchText_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args) { if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput) { JArray array = (JArray)await DataHelper.GetDataAsync(UriProvider.GetUri(UriType.GetSearchWords, sender.Text), true); sender.ItemsSource = array != null && array.Count > 0 ? array.Select(i => new SearchWord(i as JObject)) : null; } }
/// <summary> /// Inserts a command. /// </summary> /// <param name="command">The command to insert.</param> /// <param name="cancellationToken">A token to observe while waiting for the task to complete.</param> /// <returns> /// A task that represents the asynchronous operation. /// </returns> public virtual Task <ValidationResult> CreateAsync(CommandItem command, CancellationToken cancellationToken) { ThrowIfDisposed(); if (command == null) { throw new ArgumentNullException("command"); } command.Uri = UriProvider.Generate(command.Uri); return(Store.CreateAsync(command, cancellationToken)); }
private async void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args) { using (var content = new HttpMultipartFormDataContent()) using (var type = new HttpStringContent(CoolapkMessageException.RequestCaptcha)) using (var code = new HttpStringContent(textbox.Text)) { content.Add(type, "type"); content.Add(code, "code"); UIHelper.ShowMessage((await DataHelper.PostDataAsync(UriProvider.GetUri(UriType.RequestValidate), content)).ToString()); } }
internal ViewMode() { if (string.IsNullOrEmpty(SettingsHelper.Get <string>(SettingsHelper.Uid))) { return; } provider = new CoolapkListProvider( (_, __, ___, ____) => UriProvider.GetUri(UriType.GetMyPageCard), (_, __) => false, (o) => new Entity[] { GetEntity(o) }, "entityType"); }
internal ViewModel(string id, FeedDetailModel model) { if (string.IsNullOrEmpty(id)) { throw new ArgumentException(nameof(id)); } Id = id; ReplyProvider = new CoolapkListProvider( (p, page, firstItem, lastItem) => UriProvider.GetUri( UriType.GetFeedReplies, id, replyListType, p < 0 ? ++page : p, page > 1 ? $"&firstItem={firstItem}&lastItem={lastItem}" : string.Empty, isFromAuthor), (a, b) => ((FeedReplyModel)a).Id == b.Value <int>("id"), (o) => new Entity[] { new FeedReplyModel(o) }, () => loader.GetString("noMoreReply"), "id"); LikeProvider = new CoolapkListProvider( (p, page, firstItem, lastItem) => UriProvider.GetUri( UriType.GetLikeList, id, p < 0 ? ++page : p, page > 1 ? $"&firstItem={firstItem}&lastItem={lastItem}" : string.Empty), (a, b) => ((UserModel)a).Url == b.Value <string>("url"), (o) => new Entity[] { new UserModel(o) }, () => loader.GetString("noMoreLikeUser"), "uid"); ShareProvider = new CoolapkListProvider( (p, page, firstItem, lastItem) => UriProvider.GetUri( UriType.GetShareList, p == -2 ? true : false, id, p < 0 ? ++page : p), (a, b) => ((SourceFeedModel)a).Url == b.Value <string>("url"), (o) => new Entity[] { new SourceFeedModel(o) }, () => loader.GetString("noMoreShare"), "id"); HotReplys = model.HotReplies; }
public async Task Refresh(int p = -1) { if (string.IsNullOrEmpty(SettingsHelper.Get <string>(SettingsHelper.Uid))) { return; } var o = (JObject)await DataHelper.GetDataAsync(UriProvider.GetUri(UriType.GetUserProfile, SettingsHelper.Get <string>(SettingsHelper.Uid)), true); string url = o.Value <string>("userAvatar"); var bitmapImage = await ImageCacheHelper.GetImageAsync(ImageType.BigAvatar, url); UserModel = new Models.Controls.UserHubModel(o, bitmapImage); provider?.Reset(); await provider?.Refresh(); }
public static async Task <bool> CheckLoginInfo() { try { using (var filter = new Windows.Web.Http.Filters.HttpBaseProtocolFilter()) { var cookieManager = filter.CookieManager; string uid = string.Empty, token = string.Empty, userName = string.Empty; foreach (var item in cookieManager.GetCookies(new Uri("http://coolapk.com"))) { switch (item.Name) { case "uid": uid = item.Value; break; case "username": userName = item.Value; break; case "token": token = item.Value; break; } } if (!string.IsNullOrEmpty(uid) && !string.IsNullOrEmpty(token) && !string.IsNullOrEmpty(userName)) { Set(Uid, uid); var o = (JObject)await DataHelper.GetDataAsync(UriProvider.GetUri(UriType.CheckLoginInfo), true); UIHelper.NotificationNums.Initial((JObject)o["notifyCount"]); return(true); } else { return(false); } } } catch { throw; } }
private async void Button_Click(object sender, RoutedEventArgs e) { string str = (sender as FrameworkElement).Tag as string; switch (str) { case "follow": UIHelper.NavigateInSplitPane(typeof(UserListPage), new ViewModels.UserListPage.ViewModel(provider.Id, true, provider.Title)); break; case "fans": UIHelper.NavigateInSplitPane(typeof(UserListPage), new ViewModels.UserListPage.ViewModel(provider.Id, false, provider.Title)); break; case "FollowUser": var type = (provider.Models[0] as UserDetail).FollowStatus == Windows.ApplicationModel.Resources.ResourceLoader.GetForViewIndependentUse("FeedListPage").GetString("follow") ? UriType.OperateUnfollow : UriType.OperateFollow; await DataHelper.GetDataAsync( UriProvider.GetUri(type, provider.Id), true); Refresh(); break; case "copy": provider.ChangeCopyMode((sender as ToggleMenuFlyoutItem).IsChecked); break; case "report": (provider as UserViewModel).Report(); break; default: UIHelper.OpenLinkAsync(str); break; } }
public void GivenValidUri_WhenCallingDownloadJsonStringAsync_ThenStringFileReturned() { // Arrange bool actualResultValue = false; UriProvider uriProvider = new UriProvider(); Uri testUri = uriProvider.CreateWunUri(WunDataFeatures.astronomy, "INORTHLA43"); JsonProvider jsonProvider = new JsonProvider(); //Act Task <string> jsonData = jsonProvider.DownloadJsonStringAsync(testUri); if (string.IsNullOrEmpty(jsonData.Result) == true) { actualResultValue = false; } else { actualResultValue = true; } //Assert Assert.IsTrue(actualResultValue); }