ICurrencyCache
O ICurrencyCache serviço fornece acesso em cache ao conjunto da transactioncurrency organização, além da moeda base da organização. As moedas são carregadas como um único snapshot no primeiro acesso e atualizadas em uma janela deslizante grosseira — administradores raramente adicionam novas moedas, então o cache troca uma pequena área de memória para eliminar consultas por registro de moeda no caminho quente de registro-recuperação.
População Automática nos Registros
Normalmente você não precisa tocar ICurrencyCache diretamente. Sempre que a busca de um registro inclui pelo menos uma coluna de dinheiro, o servidor projeta transactioncurrencyid automaticamente e anexa a moeda resolvida à propriedade do Currency registro. MoneyEdit consome isso para renderizar o símbolo correto em seu adorno inicial.
// 'record.currency' é preenchido automaticamente em cada registro digitado
// retorna o cliente, proveniente do cache de moeda do servidor.
const { ppp } = usePowerPortalsPro();
const account = await ppp.retrieveRecordAsync('account', id);
const symbol = account.currency?.symbol; // por exemplo, "$"
const isoCode = account.currency?.isoCode; // por exemplo, "USD"
const name = account.currency?.name; // por exemplo, "Dólar Americano"// Em qualquer registro obtido através do IPowerPortalsProService:
var account = await _powerPortalsProService.RetrieveRecordAsync("account", id);
var symbol = account.Currency?.Symbol; // por exemplo, "$"
var isoCode = account.Currency?.IsoCode; // por exemplo, "USD"
var name = account.Currency?.Name; // por exemplo, "Dólar Americano"Acesso Direto
Para código personalizado do lado do servidor que precisa buscar uma moeda por id, enumerar todas as moedas na organização (um seletor de moeda, um display de taxa de câmbio) ou resolver a moeda base, injete ICurrencyCache:
[Inject]
private ICurrencyCache _currencyCache { get; set; } = null!;
protected override async Task OnInitializedAsync()
{
// Busca por id (por exemplo, a partir do transactioncurrencyid de um registro)
var currency = await _currencyCache.GetAsync(transactionCurrencyId);
// Enumere todas as moedas configuradas na organização
var allCurrencies = await _currencyCache.GetAllAsync();
// Resolver a moeda base da organização (organization.basecurrencyid)
var baseCurrency = await _currencyCache.GetBaseCurrencyAsync();
}
Dica
ICurrencyCacheé apenas do lado do servidor. Código do navegador que precisa da moeda da linha éTableRecord.Currencylido (Blazor) /record.currency(React) diretamente — preenchido automaticamente quando o registro carrega uma coluna de dinheiro.
ICurrencyCache Interface
Métodos
Nome | Parâmetros | Tipo | Descrição |
|---|---|---|---|
Get | Guid id | Currency? | Devolve a moeda com o |
GetAll | IReadOnlyDictionary<Guid, Currency> | Retorna todas as moedas configuradas na organização, indexadas por id. Carregado como um single snapshot — Os chamadores que iteram o dicionário não verão atualizações parciais se o O cache atualiza no meio da enumeração. | |
GetAllAsync | CancellationToken token | Task<IReadOnlyDictionary<Guid, Currency>> | Retorna assíncronamente todas as moedas configuradas na organização, chaveadas por id. |
GetAsync | Guid id CancellationToken token | Task<Currency> | Retorna assíncronamente a moeda com o |
GetBaseCurrency | Currency? | A moeda base da organização, resolvida a | |
GetBaseCurrencyAsync | CancellationToken token | Task<Currency> | De forma assíncrona, retorna a moeda base da organização. |
GetGetAllGetAllAsyncGetAsyncCancellationToken token
GetBaseCurrencyGetBaseCurrencyAsyncCurrency Classe
Propriedades
Nome | Tipo | Padrão | Descrição |
|---|---|---|---|
ExchangeRate | decimal | 1 | Taxa de câmbio contra a moeda base da organização, a partir |
IsoCode | string | O código ISO 4217 de três letras (por exemplo, | |
Name | string | O nome da moeda localizado vem do | |
Precision | int | 2 | Casas decimais para exibir, provenientes do MoneyMetadata.Precision, que é a precisão em nível de coluna; esse é o padrão em nível de moeda. |
Symbol | string | O símbolo de exibição Dataverse armazena no |
ExchangeRateIsoCodeNamePrecisionMoneyMetadata.Precision, que é a precisão em nível de coluna; esse é o padrão em nível de moeda.Symbol