Exemplo n.º 1
0
        /// <summary>
        /// Search repositories - Find repositories by keyword. Note, this 
        /// legacy method does not follow the v3 pagination pattern. This 
        /// method returns up to 100 results per page and pages can be fetched 
        /// using the startPage parameter.
        /// 
        /// /legacy/repos/search/:keyword
        /// </summary>
        /// <param name="keyword">Search term</param>
        /// <param name="language">Optional Filter results by language 
        /// (https://github.com/languages)</param>
        /// <param name="startPage">Optional Page number to fetch</param>
        /// <param name="sort">Optional Sort field. One of stars, forks, or 
        /// updated. If not provided, results are sorted by best match.</param>
        /// <param name="order">Optional Sort order if sort param is provided. 
        /// One of asc or desc.</param>
        /// <returns>A Repository.RepositorySearchResults with the matching Repositories.</returns>
        async public Task<Repository.RepositorySearchResults> Repositories(string keyword,
            string language = null,
            int startPage = 0,
            RepositorySorts? sort = null,
            SortOrders? order = null)
        {
            var request = CreateRequest("/legacy/repos/search/" + Uri.EscapeDataString(keyword),
                new Dictionary<string, string>
                    {
                        {"language", language},
                        {"start_page", startPage.ToString(CultureInfo.InvariantCulture)},
                        {"sort", sort.ToParameterValue()},
                        {"order", order.ToParameterValue()}
                    });

            var response = await Complete<Repository.RepositorySearchResults>(request);

            return response.Result;
        }