private async Task <List <BookInfoDto> > GetBookInfos(int methodType, Dictionary <string, string> dic,
                                                              bool includeRemove = true)
        {
            IEnumerable <BookInfo> bookInfos;

            if (methodType == 1)
            {
                bookInfos = await _service.QueryAll(includeRemove);
            }
            else
            {
                bookInfos = await _service.QueryAll(dic);
            }

            var categories = await _categoryService.QueryAll(false);

            var publishingHouses = await _publishingHouseService.QueryAll(false);

            var data = bookInfos.Join(categories, bookInfo => bookInfo.BookCategoryId, category => category.Id,
                                      (bookInfo, category) => new { bookInfo, category }).Join(publishingHouses, ac => ac.bookInfo.PublishingId,
                                                                                               publishingHouse => publishingHouse.Id, (a, c) => new BookInfoDto
            {
                Id             = a.bookInfo.Id,
                Author         = a.bookInfo.Author,
                BookCategoryId = a.bookInfo.BookCategoryId,
                BookName       = a.bookInfo.BookName,
                BookPhoto      = a.bookInfo.BookPhoto,
                BookNum        = a.bookInfo.BookNum,
                CategoryName   = a.category.CategoryName,
                CreateTime     = a.bookInfo.CreateTime,
                ISBN           = a.bookInfo.ISBN,
                IsRemove       = a.bookInfo.IsRemove,
                PublishingName = c.PublishingName,
                PublishingId   = a.bookInfo.PublishingId,
                UpdateTime     = a.bookInfo.UpdateTime,
                Price          = a.bookInfo.Price,
                ReleaseDate    = a.bookInfo.ReleaseDate
            });

            return(data.ToList());
        }
예제 #2
0
        public async Task <List <BookCategoryDto> > GetBookCategories(bool includeRemove)
        {
            var data = await _service.QueryAll(includeRemove);

            return(_mapper.Map <List <BookCategoryDto> >(data));
        }
예제 #3
0
        /// <summary>
        /// 查询书籍数据
        /// </summary>
        /// <param name="methodType">查询方法类型 0:默认全查 其它:带参查询</param>
        /// <param name="dic">查询参数</param>
        /// <param name="includeRemove">是否查询已移除数据</param>
        /// <returns></returns>
        private async Task <List <BookDto> > GetBooksByParameter(int methodType, Dictionary <string, string> dic,
                                                                 bool includeRemove = true)
        {
            #region 获取相关参数信息

            var bookInfos = await _bookInfoService.QueryAll(false);

            var categories = await _categoryService.QueryAll(false);

            var publishingHouses = await _publishingHouseService.QueryAll(false);

            #endregion

            //联表查询书籍详细信息
            var bookInfosDto = bookInfos.Join(categories, bookInfo => bookInfo.BookCategoryId, category => category.Id,
                                              (bookInfo, category) => new { bookInfo, category }).Join(publishingHouses, ac => ac.bookInfo.PublishingId,
                                                                                                       publishingHouse => publishingHouse.Id, (a, c) => new BookInfoDto
            {
                Id             = a.bookInfo.Id,
                Author         = a.bookInfo.Author,
                BookCategoryId = a.bookInfo.BookCategoryId,
                BookName       = a.bookInfo.BookName,
                BookPhoto      = a.bookInfo.BookPhoto,
                BookNum        = a.bookInfo.BookNum,
                CategoryName   = a.category.CategoryName,
                CreateTime     = a.bookInfo.CreateTime,
                ISBN           = a.bookInfo.ISBN,
                IsRemove       = a.bookInfo.IsRemove,
                PublishingName = c.PublishingName,
                PublishingId   = a.bookInfo.PublishingId,
                UpdateTime     = a.bookInfo.UpdateTime,
                Price          = a.bookInfo.Price,
                ReleaseDate    = a.bookInfo.ReleaseDate
            });
            IEnumerable <Book> books;
            //获取书籍信息
            if (methodType == 0)
            {
                books = await _service.QueryAll(includeRemove);
            }
            else
            {
                books = await _service.QueryAll(dic);
            }

            //联表查询书籍信息
            var data = books
                       .Join(bookInfosDto, book => book.BookInfoId, info => info.Id, (book, info) => new BookDto
            {
                Id             = book.Id,
                Author         = info.Author,
                BookCategoryId = info.BookCategoryId,
                BookName       = info.BookName,
                BookPhoto      = info.BookPhoto,
                CategoryName   = info.CategoryName,
                CreateTime     = book.CreateTime,
                ISBN           = info.ISBN,
                IsRemove       = book.IsRemove,
                PublishingName = info.PublishingName,
                PublishingId   = info.PublishingId,
                UpdateTime     = book.UpdateTime,
                Price          = info.Price,
                ReleaseDate    = info.ReleaseDate,
                BookState      = book.BookState,
                BookInfoId     = info.Id
            });

            return(data.ToList());
        }