public void TestGetBooks() { ReadmillClient client = new ReadmillClient(this.clientId); BooksQueryOptions options = new BooksQueryOptions(); options.CountValue = 50; List<Book> books = client.Books.GetBooksAsync(options).Result; foreach (Book book in books) Console.WriteLine(book.Title + " by " + book.Author); if (books.Count != 50) throw new InternalTestFailureException("Expected 5 Books. Got: " + books.Count); }
public Task SearchBooksAsync(string searchString, CancellationToken cancelToken = default(CancellationToken)) { BooksQueryOptions booksOptions = new BooksQueryOptions() { SearchStringValue = searchString, CountValue = 100 }; Task<List<Book>> booksTask = client.Books.GetBooksAsync(booksOptions, cancelToken); return booksTask.ContinueWith(task => { BookList = task.Result; ListState = State.SearchResult; }); }
/// <summary> /// Retrieves a list of books. /// </summary> /// <param name="options">Query options for retrieving the books</param> /// <returns></returns> public Task<List<Book>> GetBooksAsync(BooksQueryOptions options = null, CancellationToken cancellationToken = default(CancellationToken)) { IDictionary<string,string> parameters = GetInitializedParameterCollection(); if (options != null) { parameters.Add(BooksQueryOptions.Count, options.CountValue.ToString()); parameters.Add(BooksQueryOptions.SearchString, options.SearchStringValue); } //Remove extraneous parameters because Readmill doesn't like empty pairs IDictionary<string, string> tmpParams = new Dictionary<string, string>(); foreach (string key in parameters.Keys) { if (!string.IsNullOrEmpty(parameters[key])) tmpParams.Add(key, parameters[key]); } parameters = tmpParams; var booksUrl = booksUriTemplates[BooksUriTemplateType.Books].BindByName(this.readmillBaseUri, parameters); return GetAsync<List<Book>>(booksUrl, cancellationToken); }