コード例 #1
0
        /// <summary>
        /// Search Goodreads for books (returned as <see cref="Work"/> objects).
        /// </summary>
        /// <param name="searchTerm">The search term to search Goodreads with.</param>
        /// <param name="page">The current page of the paginated list.</param>
        /// <param name="searchField">The book fields to apply the search term against.</param>
        /// <returns>A paginated list of <see cref="Work"/> object matching the given search criteria.</returns>
        public Task <PaginatedList <Work> > Search(string searchTerm, int page = 1, BookSearchField searchField = BookSearchField.All)
        {
            var parameters = new List <Parameter>
            {
                new Parameter {
                    Name = "q", Value = searchTerm, Type = ParameterType.QueryString
                },
                new Parameter {
                    Name = "page", Value = page, Type = ParameterType.QueryString
                },
                new Parameter
                {
                    Name  = EnumHelpers.QueryParameterKey <BookSearchField>(),
                    Value = EnumHelpers.QueryParameterValue(searchField),
                    Type  = ParameterType.QueryString
                }
            };

            return(Connection.ExecuteRequest <PaginatedList <Work> >("search", parameters, null, "search"));
        }
コード例 #2
0
        /// <summary>
        /// Search Goodreads for books (returned as <see cref="Work"/> objects).
        /// </summary>
        /// <param name="searchTerm">The search term to search Goodreads with.</param>
        /// <param name="page">The current page of the paginated list.</param>
        /// <param name="searchField">The book fields to apply the search term against.</param>
        /// <returns>A paginated list of <see cref="Work"/> object matching the given search criteria.</returns>
        public Task<PaginatedList<Work>> Search(string searchTerm, int page = 1, BookSearchField searchField = BookSearchField.All)
        {
            var parameters = new List<Parameter>
            {
                new Parameter { Name = "q", Value = searchTerm, Type = ParameterType.QueryString },
                new Parameter { Name = "page", Value = page, Type = ParameterType.QueryString },
                new Parameter
                {
                    Name = EnumHelpers.QueryParameterKey<BookSearchField>(),
                    Value = EnumHelpers.QueryParameterValue(searchField),
                    Type = ParameterType.QueryString
                }
            };

            return Connection.ExecuteRequest<PaginatedList<Work>>("search", parameters, null, "search");
        }
コード例 #3
0
ファイル: BooksEndpoint.cs プロジェクト: Wise-team3/BookBot
        /// <summary>
        /// Search Goodreads for books (returned as <see cref="Work"/> objects).
        /// </summary>
        /// <param name="searchTerm">The search term to search Goodreads with.</param>
        /// <param name="page">The current page of the paginated list.</param>
        /// <param name="searchField">The book fields to apply the search term against.</param>
        /// <returns>A paginated list of <see cref="Work"/> object matching the given search criteria.</returns>
        public async Task <PaginatedList <Work> > Search(string searchTerm, int page, BookSearchField searchField)
        {
            var parameters = new List <Parameter>
            {
                new Parameter {
                    Name = "q", Value = searchTerm, Type = ParameterType.QueryString
                },
                new Parameter {
                    Name = "page", Value = page, Type = ParameterType.QueryString
                },
                new Parameter
                {
                    Name  = EnumHelpers.QueryParameterKey <BookSearchField>(),
                    Value = EnumHelpers.QueryParameterValue(searchField),
                    Type  = ParameterType.QueryString
                }
            };

            return(await Connection.ExecuteRequest <PaginatedList <Work> >("search", parameters, null, "search").ConfigureAwait(false));

/* var parameters = new List<Parameter>
 * {
 *   new Parameter { Name = "q", Value = searchTerm, Type = ParameterType.QueryString },
 *   new Parameter { Name = "search_type", Value ="books", Type = ParameterType.QueryString },
 *   new Parameter { Name = "search%5Bfield%5D", Value ="genre", Type = ParameterType.QueryString }
 *
 * };
 * return await Connection.ExecuteRequest<PaginatedList<Work>>("search/index.xml", parameters, null, "search").ConfigureAwait(false);
 */
        }