public async Task <IActionResult> FindBy([FromBody] SearchParametersDTO value) { var orderBy = (SearchOrderBy)Enum.ToObject(typeof(SearchOrderBy), value.OrderByValue); var bookSearchParameter = new BookSearchParameter(value.Keyword) { OrderBy = orderBy }; var books = await bookFacade.FindBy(bookSearchParameter); return(Ok(await books.ToBookViewItems(serviceDataLookUp))); }
public async Task <IList <Book> > FindBy(BookSearchParameter parameters) { var bookSet = new HashSet <Book>(); if (string.IsNullOrEmpty(parameters.Keyword)) { bookSet.UnionWith(await FindAll()); } else { var booksByTitle = await bookRepository.FindByTitleOrSynopsis(parameters.Keyword); bookSet.UnionWith(booksByTitle); var booksByIsbn = await bookRepository.FindByIsbn(parameters.Keyword); bookSet.UnionWith(booksByIsbn); var booksByPublisher = await bookRepository.FindByPublisher(parameters.Keyword); bookSet.UnionWith(booksByPublisher); var booksByAuthor = await bookRepository.FindByAuthor(parameters.Keyword); bookSet.UnionWith(booksByAuthor); } Func <Book, object> orderBySelector; if (parameters.OrderBy == SearchOrderBy.Created) { orderBySelector = b => b.Created; } else { orderBySelector = b => b.Title; } return(bookSet.OrderBy(orderBySelector).ToArray()); }
public async Task <IList <Book> > FindBy(BookSearchParameter bookSearchParameter) { return(await bookService.FindBy(bookSearchParameter)); }