/// <summary> /// Handles generic DataTablesRequest for TSource data using Dapper ORM /// </summary> /// <param name="request">DataTables Ajax Request</param> /// <param name="baseSQLQuery">The base SQL query for TSource</param> /// <returns>DataTablesResponse for TSource data</returns> public static async Task <DataTablesResponse <TSource> > DataTablesRequestAsync <TSource>(DataTablesRequest request, string baseSQLQuery) { // prepare the data and count SQL queries var totalQuery = new DataTablesContext(baseSQLQuery, request); var filterQuery = totalQuery.Where(); var dataQuery = filterQuery.OrderBy().SkipTake(); // run the queries and return the response return(new DataTablesResponse <TSource>() { Draw = request.Draw, RecordsTotal = await totalQuery.CountAsync(), RecordsFiltered = await filterQuery.CountAsync(), Data = await dataQuery.DataAsync <TSource>(), Error = request.Error, }); }
public ToDoRepository(DataTablesContext context, IMapper mapper) { Context = context; this.mapper = mapper; }