public async Task <QueryResultDto <MovieDto> > GetMovieWithGenreForDataTable( MovieDataTableSettings settings) { try { var query = Context.Movies.AsQueryable(); var totalRecords = await query.CountAsync(); if (!string.IsNullOrEmpty(settings.Search)) { query = SearchMovie(settings.Search, query); totalRecords = await query.CountAsync(); } var columnsMap = GetColumnsMap(); if (settings.GenreId.HasValue) { query = query.Where(m => m.GenreId == settings.GenreId); totalRecords = await query.CountAsync(); } query = query .Include(m => m.Genre) .ApplyOrdering(settings, columnsMap); query = query.ApplyPaging(settings); var resultDto = (await query.ToListAsync()).Select(_mapper.Map <Movie, MovieDto>); return(new QueryResultDto <MovieDto> { Items = resultDto.ToList(), TotalItems = totalRecords }); } catch (Exception ex) { _logger.LogError("DataBase error", ex); throw new BusinessLogicException("Could not fetch data!", ex); } }
public async Task <QueryResultDto <MovieDto> > GetMoviesAsync([FromQuery] MovieDataTableSettings model) { return(await _movieService.GetMovieWithGenreForDataTable(model)); }