public async Task <ActionResult> Find( [FromQuery] string title, [FromQuery] string author, [FromQuery] string publisher, [FromQuery] string subject, [FromQuery] string volumeId, [FromQuery] int maxResults, [FromQuery] int startIndex, [FromQuery] PrintType printType, [FromQuery] Projection projection, [FromQuery] Sorting orderBy) { _queryBuilder .SetTitle(title) .SetAuthor(author) .SetPublisher(publisher) .SetSubject(subject) .SetVolumeId(volumeId) .SetMaxResults(maxResults) .SetProjection(projection) .SetStartIndex(startIndex) .SetPrintType(printType) .SetOrderBy(orderBy); return(Ok(await _bookRepository.FindByFilter(_queryBuilder))); }
public void ShouldCreateQueryOk() { _builder.SetTitle(_title) .SetAuthor(_author) .SetPublisher(_publisher) .SetSubject(_subject) .SetVolumeId(_volumeId) .SetMaxResults(_maxResults) .SetProjection(_projection) .SetStartIndex(_startIndex) .SetPrintType(_printType) .SetOrderBy(_orderBy); var query = _builder.BuildQueryString(); Assert.AreEqual(10, query.Split('&').Length); StringAssert.Contains($"{Parameters.Intitle}:{_title}", query); StringAssert.Contains($"{Parameters.Inauthor}:{_author}", query); StringAssert.Contains($"{Parameters.InPublisher}:{_publisher}", query); StringAssert.Contains($"{Parameters.Subject}:{_subject}", query); StringAssert.Contains($"{Parameters.VolumeId}:{_volumeId}", query); StringAssert.Contains($"{Parameters.MaxResults}={_maxResults}", query); StringAssert.Contains($"{Parameters.Projection}={_projection.Description()}", query); StringAssert.Contains($"{Parameters.StartIndex}={_startIndex}", query); StringAssert.Contains($"{Parameters.PrintType}={_printType.Description()}", query); StringAssert.Contains($"{Parameters.OrderBy}={_orderBy.Description()}", query); }