Example #1
0
        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;
                }
            });
        }
Example #2
0
 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();
         }
     }
 }
Example #3
0
        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;
            }
        }
Example #4
0
 /// <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));
 }
Example #5
0
 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());
             }
 }
Example #6
0
        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");
        }
Example #7
0
        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;
        }
Example #8
0
        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();
        }
Example #9
0
        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; }
        }
Example #10
0
        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;
            }
        }
Example #11
0
        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);
        }