Ejemplo n.º 1
0
 /// <summary>
 /// Handles the DataTablesRequest for the Customer Database
 /// </summary>
 /// <param name="request">DataTables Ajax Request</param>
 /// <returns>DataTablesResponse for Customer table</returns>
 /// <remarks>
 /// When intergration with projects without Data.Repository classes, the
 /// base SQL query may be hard-coded here when making the call to the generic
 /// DataTablesRequestAsync() method.
 /// </remarks>
 public static async Task <DataTablesResponse <Customer> > DataTablesCustomerRequestAsync(DataTablesRequest request)
 {
     return(await DataTablesRequestAsync <Customer>(request, CustomerRepository.BaseQuery()));
 }
Ejemplo n.º 2
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,
            });
        }