public async Task <ActionResult <ServerDataGridModel> > GridSchema([FromServices] IAuthorizationService authorizationService, [FromServices] ResourcePointControllerFactory <TEntity, TFilterableEntity, TKey> controllerFactory) { var result = await authorizationService.AuthorizeAsync(User, typeof(TEntity), CrudOperations.Read); if (!result.Succeeded) { return(Forbid()); } var schemaProvider = controllerFactory.GetEntitySchemaProvider(); var model = await schemaProvider.GetModelAsync(new EntitySchemaProviderContext()); return(Ok(model)); }
public async Task <ActionResult <PagedResult <TFilterableEntity> > > Get(FilterParameters filterParameters, [FromServices] RemboardContext context, [FromServices] IAuthorizationService authorizationService, [FromServices] ResourcePointControllerFactory <TEntity, TFilterableEntity, TKey> controllerFactory) { var result = await authorizationService.AuthorizeAsync(User, typeof(TEntity), CrudOperations.Read); if (!result.Succeeded) { return(Forbid()); } var filterableOperation = controllerFactory.GetFilterableOperation(); var predicateFactory = controllerFactory.GetMandatoryPredicateFactory(); var pagedResult = await filterableOperation.FilterAsync(context, predicateFactory, filterParameters); return(Ok(pagedResult)); }