public DataTablesResponse GetListChapter(IDataTablesRequest dataTableParam, ResourceChapterSearchViewModel searchViewModel)
        {
            try
            {
                var query = ResourceRepository.GetAll(x => x.IsDeleted == false && x.Type == (int)ResourceType.Chapter);
                if (searchViewModel.AuthorId > 0)
                {
                    query = query.Where(x => x.Authors.Any(g => g.IsDeleted == false && g.Id == searchViewModel.AuthorId));
                }
                if (searchViewModel.GenreId > 0)
                {
                    query = query.Where(x => x.Genres.Any(g => g.IsDeleted == false && g.Id == searchViewModel.GenreId));
                }
                if (searchViewModel.CategoryId > 0)
                {
                    query = query.Where(x => x.ChapterResources.Any(g => g.IsDeleted == false && g.Chapter.CategoryId == searchViewModel.CategoryId));
                }
                if (searchViewModel.ChapterId > 0)
                {
                    query = query.Where(x => x.ChapterResources.Any(g => g.IsDeleted == false && g.ChapterId == searchViewModel.ChapterId));
                }

                var dataTableHelper = new DataTableHelper<ResourceChapterViewModel, Resource>(query, x => new ResourceChapterViewModel
                {
                    Id = x.Id,
                    Url = x.Url,
                    Tag = x.Tag,
                    Order = x.Order,
                    Chapter = x.ChapterResources.AsQueryable().Any(y => y.IsDeleted == false) ? x.ChapterResources.AsQueryable().FirstOrDefault().Chapter.Title : ""
                });

                var entities = dataTableHelper.GetDataVMForResponse(dataTableParam);
                var result = dataTableHelper.GetDataToList(dataTableParam, entities);

                return new DataTablesResponse(dataTableParam.Draw, result, entities.Count(), entities.Count());
            }
            catch (Exception ex)
            {
                Provider.Instance.LogError(ex);
                return new DataTablesResponse(dataTableParam.Draw, new List<ResourceChapterViewModel>(), 0, 0);
            }
        }
 public ActionResult GetListChapter(IDataTablesRequest dataTableParam, ResourceChapterSearchViewModel searchViewModel)
 {
     return Json(ResourceBusiness.GetListChapter(dataTableParam, searchViewModel));
 }