Пример #1
0
        /// <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,
            });
        }
Пример #2
0
 public ToDoRepository(DataTablesContext context, IMapper mapper)
 {
     Context     = context;
     this.mapper = mapper;
 }