IPowerPortalsProService

A IPowerPortalsProService interface fornece métodos para realizar operações CRUD, executar consultas, gerenciar relacionamentos e recuperar metadados do Dataverse. É o serviço principal para acesso a dados do lado do servidor no PowerPortalsPro.

Nota

Na maioria dos casos, você não precisa ligar IPowerPortalsProService diretamente. Os RecordContextcomponentes , MainContext, e grade gerenciam automaticamente as operações de dados. Use esse serviço para lógica personalizada que esteja fora do fluxo padrão de componentes.

Implementações de Servidor e Cliente

IPowerPortalsProService vem com duas implementações registradas automaticamente pelo framework — seu código de componente é idêntico em ambos, e o runtime injeta aquela que corresponde ao contexto ativo de renderização:

  • Implementação do servidor (PowerPortalsPro.Web.Server, registrada por AddPowerPortalsProWebServer) — roda em processo, comunica diretamente com o Dataverse através IOrganizationServicede , e aplica seus ITablePermissionHandler / ITableRecordPermissionHandler interceptors antes de qualquer leitura ou escrita. Selecionado quando a página é renderizada sob InteractiveServerRenderMode ou SSR estático.
  • Implementação cliente (PowerPortalsPro.Web.Client, registrada por AddPowerPortalsProWebClient) — roda no navegador sob WebAssembly, não possui nenhum SDK Dataverse e, em vez disso, serializa cada chamada em JSON para o endpoint HTTP do lado do servidor correspondente (/api/table/{name}, /api/retrieveMultiple, etc.). Os handlers de permissão ainda se aplicam porque a requisição retorna ao endpoint do servidor. Veja a página da API do Cliente para o formato da wire e as rotas que a implementação do cliente chama.

Como o contrato é idêntico, o mesmo componente funciona em qualquer modo de interatividade (Servidor, WebAssembly ou Auto). Código que chama _powerPortalsProService.RetrieveRecordAsync(...) uma página renderizada pelo servidor faz uma chamada Dataverse em processo; a mesma linha em uma página renderizada por WASM emite uma requisição HTTP — sem necessidade de ramificação.

Injeção do Serviço

Injetar IPowerPortalsProService em qualquer componente ou serviço Blazor via injeção de construtor ou propriedade.

React
Blazor

Recuperando um Registro

Use RetrieveRecordAsync para buscar um único registro pelo nome da tabela e ID. Opcionalmente especifique quais colunas devolver; se omitido, todas as colunas são retornadas.

React
Blazor

Consulta a múltiplos registros

Use RetrieveRecordsAsync com uma string de consulta FetchXML para recuperar múltiplos registros com suporte a filtragem, ordenação e entidades vinculadas.

React
Blazor

Criando um Registro

Use CreateRecordAsync para criar um novo registro no Dataverse. A resposta contém o ID do registro recém-criado.

React
Blazor

Atualizando um Registro

Use UpdateRecordAsync para atualizar um registro existente. Apenas as propriedades definidas no TableRecord são enviadas para o Dataverse.

React
Blazor

Apagando um Registro

Use DeleteRecordAsync para deletar um registro pelo nome da tabela e ID.

React
Blazor

Registros Associados

Use AssociateAsync e DisassociateAsync gerencie relações muitos-para-muitos entre registros.

React
Blazor

Execução de Solicitações

Use ExecuteAsync para uma única requisição ou ExecuteMultipleAsync para executar múltiplas requisições em uma única transação de banco de dados. Se qualquer requisição em um lote transacional falhar, todas as alterações são revertidas.

React
Blazor

Recuperando Metadados

Use RetrieveTableMetadataAsync e RetrieveViewMetadataAsync para recuperar metadados de tabela e visualização. Para acesso em cache, prefere ITableMetadataCache e IViewMetadataCache em vez disso.

React
Blazor

Trabalhando com Arquivos

Use GetFileInfoAsync para recuperar metadados de arquivos ou imagens e, opcionalmente, o conteúdo binário de uma coluna de arquivo ou imagem.

React
Blazor

IPowerPortalsProService Interface

Métodos

Nome
Parâmetros
Tipo
Descrição
AssociateAsyncTableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
Task<AssociateResponse>
Associa um registro a um ou mais registros relacionados por meio de uma relação muitos-para-muitos.
ClearAllCachesAsyncTask<IReadOnlyList<CacheClearResult>>
Limpa todos os servidores Services.IClearableCache (tabela / visualização / privilégio metadados, privilégios por usuário, configurações do arquivo do ambiente) e reconstrói o Localized-strings cacheam atômicamente — os leitores continuam a ver o anteriormente dados carregados até que o novo estado esteja totalmente preenchido. Caches preguiçosos recarregam no Próximo pedido que precisar deles. O endpoint HTTP por trás dessa chamada é bloqueado por [Autorizar(Roles = 'SystemAdmin')]. Chamadas diretas do lado do servidor deveriam Gate apropriadamente em seu próprio limite.
ClearCacheAsyncstring name
Task<CacheClearResult>
Limpa um cache nomeado. Retornos null quando não registrado correspondências name de cache (insensíveis a maiúsculas e maiúsculas); falhas são Envolvido no resultado em vez de jogado fora. Mesmo portão de autenticação que IPowerPortalsProService.ClearAllCachesAsync.
CreateFileArchiveAsyncCreateFileArchiveRequest request
Task<FileArchiveResult>
Constrói um arquivo (atualmente zip; formatos futuros estão disponíveis atrás do CreateFileArchiveRequest.Format enum) contendo todos os registros carga útil para o par nomeado de tabela / coluna. Usa o mesmo por disco Cadeia de permissão como String,System.Boolean) — não autorizada / ausente As linhas são silenciosamente retiradas do arquivo. Nomes de arquivos duplicados são desambiguado com sufixos ' (2)',' (3)', ... Então o arquivo Nunca sobrescreve entradas.
CreateRecordAsyncTableRecord record
Task<CreateResponse>
Cria um novo registro no Dataverse.
DeleteRecordAsyncstring tableLogicalName
Guid id
Task<DeleteResponse>
Exclui um registro do Dataverse pelo nome da tabela e pelo ID do registro.
DisassociateAsyncTableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
Task<DisassociateResponse>
Remove uma associação entre um registro e um ou mais registros relacionados por meio de uma relação muitos-para-muitos.
DownloadLocalizationSourceAsyncstring sourceId
string culture
Task<LocalizationDownload>
Downloads as chaves que uma fonte contribuiu para uma cultura durante a maior parte aquecimento recente, como JSON no mesmo consumidor em forma de objeto aninhado aplicativo.{cultura}.json usam. Destinado à transferência de tradução — Entregue o arquivo para um tradutor, recupere uma versão traduzida, coloque no arquivo uma pasta de localização onde ela sobrescreve a fonte original fornecido para essas chaves.
DownloadMergedLocalizationsAsyncstring culture
Task<LocalizationDownload>
Baixa as chaves de localização mesclaras para uma cultura — o pós-fusão valor vencedor para cada chave armazenada pelo cache, independentemente de qual A fonte originalmente fornecia isso. Use isso para um snapshot completo referência (tudo o que o portal realmente vai servir para essa cultura) em vez da visão por fonte acima.
ExecuteAsyncOrganizationRequest request
Task<OrganizationResponse>
Executa uma única solicitação de organização contra o Dataverse.
ExecuteMultipleAsyncIEnumerable<OrganizationRequest> requests
bool returnResponses
Task<List<OrganizationResponse>>
Executa múltiplas requisições de organização em uma única transação de banco de dados. Se alguma solicitação falhar, todas as alterações no lote são revertidas.
GetCacheNamesAsyncTask<IReadOnlyList<string>>
Retorna os nomes de cada lado Services.IClearableCachedo servidor , adequado para uma interface de administrador que quer renderizar botões de limpeza por cache. Mesmo portão de autenticação como IPowerPortalsProService.ClearAllCachesAsync se aplica ao endpoint HTTP.
GetFileInfoAsyncstring tableName
Guid recordId
string columnName
bool includeData
Task<FileInfo>
Recupera informações de arquivos e, opcionalmente, o conteúdo binário de uma coluna de arquivo ou imagem no Dataverse.
GetFileInfosAsyncstring tableName
IEnumerable<Guid> recordIds
string columnName
bool includeData
Task<IEnumerable<FileInfo>>
Recuperação em lote de informações de arquivos para muitos registros da mesma tabela / coluna em uma única viagem de ida e volta. Internamente, ventila o disco por disco em paralelo e retorna a lista combinada. A mesma cadeia de manipuladores de permissões por registro executa como para a chamada de disco único; Consultas falhadas são eliminadas da resposta em vez de Falhando no lote todo. Usado pelo 'Download All' / 'Download Selected' do FileGrid para que o cliente possa construir um zip sem disparar N requisições HTTP.
GetLocalizationOverviewAsyncTask<LocalizationOverview>
Retorna um snapshot voltado para o administrador do pipeline de localização de strings: o configuração estática que conduziu o aquecimento, além dos registros de carga por fonte Produzido pelo aquecimento mais recente. Apoia o LocalizationAdmin componente em PowerPortalsPro.Web.Blazor.FluentUI. O endpoint HTTP é bloqueado por [Authorize(Roles = 'SystemAdmin')].
GetOrganizationSettingsAsyncTask<OrganizationSettings>
Recupera as configurações organizacionais obtidas do Dataverse Histórico organizacional : DefaultCurrency — a moeda base da organização, usada pelo modo criação editores (MoneyEdit) para renderizar o símbolo certo em discos totalmente novos. BlockedFileExtensions + MaxUploadFileSizeInBytes — upload de arquivo restrições que os clientes espelham para rejeitar arquivos inválidos antes da viagem de ida e volta. Substitui o legado GetEnvironmentFileSettingsAsync — os dois campos de arquivo agora estão expostos nessa resposta combinada.
GetTablePermissionsForCurrentUserAsyncstring tableLogicalName
Task<TableSecurityPermission>
Retorna a máscara combinada em nível Models.TableSecurityPermission de tabela do usuário atual para tableLogicalName — a união bit a bit de Ler / Criar / Escrever / Flags de Delete / Append / AppendTo qualquer ITablePermissionHandler registrado permitir para aquele usuário naquela mesa. No lado do servidor, isso delega para o ITablePermissionCache em cache; o cliente WASM atinge um endpoint HTTP que chama o mesmo cache no servidor. Espelha o Consulta de cache-tabela NovoRegistroGridBotão / ExcluirRegistroGradeBotão de Blazor já faz diretamente via DI, e o novo valor que o GridDataResponse carrega como TablePermissions — exposto aqui para que consumidores fora do caminho da grade (personalizado barras de ferramentas, interface condicional, portas 'O usuário pode criar X?' em qualquer lugar da página) podem Chegar à mesma resposta sem precisar fazer uma consulta em grade.
GetTranslationAvailabilityAsyncTask<TranslationAvailability>
Retorna se o recurso de localização-tradução é utilizável no ambiente atual: se o serviço de tradução do Azure está configurado, se a tradução gerenciou a solução é instalada, e os idiomas-alvo candidatos (as culturas suportadas pelo portal anotado com Azure-translatability). Apoia a decisão da interface do LocalizationTranslator para mostrar o painel de tradução, um prompt de instalação ou nada.
RetrieveRecordAsyncstring tableLogicalName
Guid id
IEnumerable<string> columns
Task<TableRecord>
Recupera um único registro do Dataverse por nome da tabela e ID do registro.
RetrieveRecordsAsyncstring fetchXml
Task<RetrieveRecordsResponse>
Recupera múltiplos registros do Dataverse usando uma consulta FetchXML. Suporta filtragem, ordenação, paginação, entidades vinculadas e consultas agregadas.
RetrieveTableMetadataAsyncstring tableLogicalName
Task<TableMetadata>
Recupera metadados de tabela do Dataverse, incluindo definições de colunas, relacionamentos e configuração de exibição.
RetrieveViewMetadataAsyncGuid viewId
Task<ViewMetadata>
Recupera metadados da visualização do Dataverse, incluindo a consulta FetchXML da visualização, colunas e configuração de exibição.
RetrieveViewsForTableAsyncstring tableLogicalName
Task<IEnumerable<ViewMetadata>>
Recupera todos os registros de metadados de visualização de uma tabela. Usado por grades que precisam enumere as visualizações disponíveis (view-picker, resolução padrão-view, etc.). A implementação do lado do servidor lê do IViewMetadataCache em processo; o cliente WASM atinge um endpoint HTTP que faz o mesmo no servidor.
TranslateLocalizationFileAsyncTranslationRequest request
Task<TranslationResult>
Traduz automaticamente um arquivo de localização carregado para um ou mais idiomas-alvo via Azure Tradutor, reutilizando a memória de tradução do Dataverse e reportando quantas strings estavam Traduzido recém-usado versus reutilizado. Retorna um arquivo por idioma de destino mais um zip de todos.
UpdateRecordAsyncTableRecord record
Task<UpdateResponse>
Atualiza um registro existente no Dataverse. Apenas as propriedades definidas no registro são enviadas para o Dataverse.
Nome: AssociateAsync
Parâmetros: TableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
Tipo: Task<AssociateResponse>
Descrição: Associa um registro a um ou mais registros relacionados por meio de uma relação muitos-para-muitos.
Nome: ClearAllCachesAsync
Tipo: Task<IReadOnlyList<CacheClearResult>>
Descrição: Limpa todos os servidores Services.IClearableCache (tabela / visualização / privilégio metadados, privilégios por usuário, configurações do arquivo do ambiente) e reconstrói o Localized-strings cacheam atômicamente — os leitores continuam a ver o anteriormente dados carregados até que o novo estado esteja totalmente preenchido. Caches preguiçosos recarregam no Próximo pedido que precisar deles. O endpoint HTTP por trás dessa chamada é bloqueado por [Autorizar(Roles = 'SystemAdmin')]. Chamadas diretas do lado do servidor deveriam Gate apropriadamente em seu próprio limite.
Nome: ClearCacheAsync
Parâmetros: string name
Tipo: Task<CacheClearResult>
Descrição: Limpa um cache nomeado. Retornos null quando não registrado correspondências name de cache (insensíveis a maiúsculas e maiúsculas); falhas são Envolvido no resultado em vez de jogado fora. Mesmo portão de autenticação que IPowerPortalsProService.ClearAllCachesAsync.
Nome: CreateFileArchiveAsync
Parâmetros: CreateFileArchiveRequest request
Tipo: Task<FileArchiveResult>
Descrição: Constrói um arquivo (atualmente zip; formatos futuros estão disponíveis atrás do CreateFileArchiveRequest.Format enum) contendo todos os registros carga útil para o par nomeado de tabela / coluna. Usa o mesmo por disco Cadeia de permissão como String,System.Boolean) — não autorizada / ausente As linhas são silenciosamente retiradas do arquivo. Nomes de arquivos duplicados são desambiguado com sufixos ' (2)',' (3)', ... Então o arquivo Nunca sobrescreve entradas.
Nome: CreateRecordAsync
Parâmetros: TableRecord record
Tipo: Task<CreateResponse>
Descrição: Cria um novo registro no Dataverse.
Nome: DeleteRecordAsync
Parâmetros: string tableLogicalName
Guid id
Tipo: Task<DeleteResponse>
Descrição: Exclui um registro do Dataverse pelo nome da tabela e pelo ID do registro.
Nome: DisassociateAsync
Parâmetros: TableRecordReference record
string relationshipName
IEnumerable<TableRecordReference> relatedRecords
EntityRole? role
Tipo: Task<DisassociateResponse>
Descrição: Remove uma associação entre um registro e um ou mais registros relacionados por meio de uma relação muitos-para-muitos.
Nome: DownloadLocalizationSourceAsync
Parâmetros: string sourceId
string culture
Tipo: Task<LocalizationDownload>
Descrição: Downloads as chaves que uma fonte contribuiu para uma cultura durante a maior parte aquecimento recente, como JSON no mesmo consumidor em forma de objeto aninhado aplicativo.{cultura}.json usam. Destinado à transferência de tradução — Entregue o arquivo para um tradutor, recupere uma versão traduzida, coloque no arquivo uma pasta de localização onde ela sobrescreve a fonte original fornecido para essas chaves.
Nome: DownloadMergedLocalizationsAsync
Parâmetros: string culture
Tipo: Task<LocalizationDownload>
Descrição: Baixa as chaves de localização mesclaras para uma cultura — o pós-fusão valor vencedor para cada chave armazenada pelo cache, independentemente de qual A fonte originalmente fornecia isso. Use isso para um snapshot completo referência (tudo o que o portal realmente vai servir para essa cultura) em vez da visão por fonte acima.
Nome: ExecuteAsync
Parâmetros: OrganizationRequest request
Tipo: Task<OrganizationResponse>
Descrição: Executa uma única solicitação de organização contra o Dataverse.
Nome: ExecuteMultipleAsync
Parâmetros: IEnumerable<OrganizationRequest> requests
bool returnResponses
Tipo: Task<List<OrganizationResponse>>
Descrição: Executa múltiplas requisições de organização em uma única transação de banco de dados. Se alguma solicitação falhar, todas as alterações no lote são revertidas.
Nome: GetCacheNamesAsync
Tipo: Task<IReadOnlyList<string>>
Descrição: Retorna os nomes de cada lado Services.IClearableCachedo servidor , adequado para uma interface de administrador que quer renderizar botões de limpeza por cache. Mesmo portão de autenticação como IPowerPortalsProService.ClearAllCachesAsync se aplica ao endpoint HTTP.
Nome: GetFileInfoAsync
Parâmetros: string tableName
Guid recordId
string columnName
bool includeData
Tipo: Task<FileInfo>
Descrição: Recupera informações de arquivos e, opcionalmente, o conteúdo binário de uma coluna de arquivo ou imagem no Dataverse.
Nome: GetFileInfosAsync
Parâmetros: string tableName
IEnumerable<Guid> recordIds
string columnName
bool includeData
Tipo: Task<IEnumerable<FileInfo>>
Descrição: Recuperação em lote de informações de arquivos para muitos registros da mesma tabela / coluna em uma única viagem de ida e volta. Internamente, ventila o disco por disco em paralelo e retorna a lista combinada. A mesma cadeia de manipuladores de permissões por registro executa como para a chamada de disco único; Consultas falhadas são eliminadas da resposta em vez de Falhando no lote todo. Usado pelo 'Download All' / 'Download Selected' do FileGrid para que o cliente possa construir um zip sem disparar N requisições HTTP.
Nome: GetLocalizationOverviewAsync
Tipo: Task<LocalizationOverview>
Descrição: Retorna um snapshot voltado para o administrador do pipeline de localização de strings: o configuração estática que conduziu o aquecimento, além dos registros de carga por fonte Produzido pelo aquecimento mais recente. Apoia o LocalizationAdmin componente em PowerPortalsPro.Web.Blazor.FluentUI. O endpoint HTTP é bloqueado por [Authorize(Roles = 'SystemAdmin')].
Nome: GetOrganizationSettingsAsync
Tipo: Task<OrganizationSettings>
Descrição: Recupera as configurações organizacionais obtidas do Dataverse Histórico organizacional : DefaultCurrency — a moeda base da organização, usada pelo modo criação editores (MoneyEdit) para renderizar o símbolo certo em discos totalmente novos. BlockedFileExtensions + MaxUploadFileSizeInBytes — upload de arquivo restrições que os clientes espelham para rejeitar arquivos inválidos antes da viagem de ida e volta. Substitui o legado GetEnvironmentFileSettingsAsync — os dois campos de arquivo agora estão expostos nessa resposta combinada.
Nome: GetTablePermissionsForCurrentUserAsync
Parâmetros: string tableLogicalName
Tipo: Task<TableSecurityPermission>
Descrição: Retorna a máscara combinada em nível Models.TableSecurityPermission de tabela do usuário atual para tableLogicalName — a união bit a bit de Ler / Criar / Escrever / Flags de Delete / Append / AppendTo qualquer ITablePermissionHandler registrado permitir para aquele usuário naquela mesa. No lado do servidor, isso delega para o ITablePermissionCache em cache; o cliente WASM atinge um endpoint HTTP que chama o mesmo cache no servidor. Espelha o Consulta de cache-tabela NovoRegistroGridBotão / ExcluirRegistroGradeBotão de Blazor já faz diretamente via DI, e o novo valor que o GridDataResponse carrega como TablePermissions — exposto aqui para que consumidores fora do caminho da grade (personalizado barras de ferramentas, interface condicional, portas 'O usuário pode criar X?' em qualquer lugar da página) podem Chegar à mesma resposta sem precisar fazer uma consulta em grade.
Nome: GetTranslationAvailabilityAsync
Tipo: Task<TranslationAvailability>
Descrição: Retorna se o recurso de localização-tradução é utilizável no ambiente atual: se o serviço de tradução do Azure está configurado, se a tradução gerenciou a solução é instalada, e os idiomas-alvo candidatos (as culturas suportadas pelo portal anotado com Azure-translatability). Apoia a decisão da interface do LocalizationTranslator para mostrar o painel de tradução, um prompt de instalação ou nada.
Nome: RetrieveRecordAsync
Parâmetros: string tableLogicalName
Guid id
IEnumerable<string> columns
Tipo: Task<TableRecord>
Descrição: Recupera um único registro do Dataverse por nome da tabela e ID do registro.
Nome: RetrieveRecordsAsync
Parâmetros: string fetchXml
Tipo: Task<RetrieveRecordsResponse>
Descrição: Recupera múltiplos registros do Dataverse usando uma consulta FetchXML. Suporta filtragem, ordenação, paginação, entidades vinculadas e consultas agregadas.
Nome: RetrieveTableMetadataAsync
Parâmetros: string tableLogicalName
Tipo: Task<TableMetadata>
Descrição: Recupera metadados de tabela do Dataverse, incluindo definições de colunas, relacionamentos e configuração de exibição.
Nome: RetrieveViewMetadataAsync
Parâmetros: Guid viewId
Tipo: Task<ViewMetadata>
Descrição: Recupera metadados da visualização do Dataverse, incluindo a consulta FetchXML da visualização, colunas e configuração de exibição.
Nome: RetrieveViewsForTableAsync
Parâmetros: string tableLogicalName
Tipo: Task<IEnumerable<ViewMetadata>>
Descrição: Recupera todos os registros de metadados de visualização de uma tabela. Usado por grades que precisam enumere as visualizações disponíveis (view-picker, resolução padrão-view, etc.). A implementação do lado do servidor lê do IViewMetadataCache em processo; o cliente WASM atinge um endpoint HTTP que faz o mesmo no servidor.
Nome: TranslateLocalizationFileAsync
Parâmetros: TranslationRequest request
Tipo: Task<TranslationResult>
Descrição: Traduz automaticamente um arquivo de localização carregado para um ou mais idiomas-alvo via Azure Tradutor, reutilizando a memória de tradução do Dataverse e reportando quantas strings estavam Traduzido recém-usado versus reutilizado. Retorna um arquivo por idioma de destino mais um zip de todos.
Nome: UpdateRecordAsync
Parâmetros: TableRecord record
Tipo: Task<UpdateResponse>
Descrição: Atualiza um registro existente no Dataverse. Apenas as propriedades definidas no registro são enviadas para o Dataverse.