Example #1
0
        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)));
        }
Example #2
0
        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());
        }
Example #3
0
 public async Task <IList <Book> > FindBy(BookSearchParameter bookSearchParameter)
 {
     return(await bookService.FindBy(bookSearchParameter));
 }