Пример #1
0
        private async Task <List <Dialogs.SelectDialogPayload> > GenerateUserCandidateList(string word)
        {
            var list = new List <Dialogs.SelectDialogPayload>();
            // word is numbers
            int maybeMylistId;

            if (int.TryParse(word, out maybeMylistId))
            {
                // ユーザーが存在するかチェック
                var userId = word;
                try
                {
                    var userInfo = await HohoemaApp.ContentProvider.GetUserInfo(userId);

                    if (userInfo != null)
                    {
                        var result = new Dialogs.SelectDialogPayload()
                        {
                            Id    = userId,
                            Label = userInfo.Nickname
                        };

                        list.Add(result);
                    }
                }
                catch { }
            }
            // word is text
            else
            {
                // TODO: ユーザーのローカルDBから選択候補ユーザーの検索

                /*
                 * Models.Db.UserInfoDb.
                 * var searchResult = await HohoemaApp.NiconicoContext.Search.MylistSearchAsync(word, limit: 10);
                 * if (searchResult != null && searchResult.IsOK && searchResult.MylistGroupItems != null)
                 * {
                 *      foreach (var searchItem in searchResult.MylistGroupItems)
                 *      {
                 *              list.Add(new Views.Service.SelectDialogPayload()
                 *              {
                 *                      Id = searchItem.Id,
                 *                      Label = searchItem.Name
                 *              });
                 *      }
                 * }
                 */
            }


            return(list);
        }
Пример #2
0
        private async Task <List <Dialogs.SelectDialogPayload> > GenerateMylistCandidateList(string word)
        {
            var list = new List <Dialogs.SelectDialogPayload>();
            // word is numbers
            int maybeMylistId;

            if (int.TryParse(word, out maybeMylistId))
            {
                // マイリストが実在するかチェック
                var mylistId = word;
                try
                {
                    var mylistDetail = await HohoemaApp.ContentProvider.GetMylistGroupDetail(mylistId);

                    if (mylistDetail != null)
                    {
                        var result = new Dialogs.SelectDialogPayload()
                        {
                            Id    = mylistId,
                            Label = mylistDetail.MylistGroup.Name
                        };

                        list.Add(result);
                    }
                }
                catch { }
            }
            // word is text
            else
            {
                // マイリスト検索の上位10件を取得
                var searchResult = await HohoemaApp.NiconicoContext.Search.MylistSearchAsync(word, limit : 10);

                if (searchResult != null && searchResult.IsOK && searchResult.MylistGroupItems != null)
                {
                    foreach (var searchItem in searchResult.MylistGroupItems)
                    {
                        list.Add(new Dialogs.SelectDialogPayload()
                        {
                            Id    = searchItem.Id,
                            Label = searchItem.Name
                        });
                    }
                }
            }


            return(list);
        }