public async Task <IEnumerable <NameResponseItem> > GetAutocomplteItems(AutocompleteItemsRequest request) { var entityType = _implementationsContainer.Reflector.GetType(request.EntityTypeName); var keyType = _implementationsContainer.Metadata[request.EntityTypeName].GetPrimaryKey().GetDataType().GetClrType(); var method = _handlerInternal.GetType().GetMethod(nameof(EfCoreEntityHandlerInternal.GetAutocompleteItemsInternal), BindingFlags.NonPublic | BindingFlags.Instance).MakeGenericMethod(entityType, keyType); var awaitable = method.Invoke(_handlerInternal, new object[] { request.QueryText }) as Task <IEnumerable <NameResponseItem> >; return(await awaitable); }
public async Task <ActionResult <IdAndNameResponse> > GetAutocompleteItems([FromBody] AutocompleteItemsRequest request) { if (!_permissionService.IsAllowed(new ActionRequestInfo(HttpContext, _implementationsContainer, request.EntityType, ActionTypeEnum.Select))) { return(Unauthorized()); } var result = await _entityHandler.GetAutocomplteItems(request); return(new IdAndNameResponse { EntityType = request.EntityType, Names = result }); }