示例#1
0
        private IEnumerable <Book> Where(IDictionary <string, string> @params)
        {
            var queries = @params.ToObject <BookRequest>();

            var linqQuery = Where(b => b.IsActivated());

            if (queries.CategoryId != Guid.Empty)
            {
                linqQuery = _bookCategoryService.Include(bc => bc.Book)
                            .Where(bc => bc.CategoryId == queries.CategoryId && bc.IsActivated() && bc.Book.IsActivated())
                            .Select(bc => bc.Book);
            }

            if (queries.AuthorId != Guid.Empty)
            {
                linqQuery = linqQuery.Where(book => book.AuthorId == queries.AuthorId);
            }

            if (!string.IsNullOrEmpty(queries.BookType))
            {
                linqQuery = FilterBookType(linqQuery, queries.BookType);
            }

            return(linqQuery
                   .Skip(queries.Limit * (queries.Page - 1))
                   .Take(queries.Limit));
        }