ICurrencyCache
El ICurrencyCache servicio proporciona acceso en caché al conjunto de transactioncurrency la organización más la moneda base de la organización. Las monedas se cargan como una única instantánea en el primer acceso y se actualizan en una ventana deslizante gruesa — los administradores rara vez añaden nuevas monedas, por lo que la caché intercambia una pequeña huella de memoria por eliminar las consultas por registro en la ruta caliente de recuperación de registros.
Población automática en registros
Normalmente no necesitas tocar ICurrencyCache directamente. Siempre que el fetch de un registro incluye al menos una columna de dinero, el servidor proyecta transactioncurrencyid automáticamente y adjunta la moneda resuelta a la propiedad del Currency registro. MoneyEdit La consume para mostrar el símbolo correcto en su adorno inicial.
// 'record.currency' se llena automáticamente en cada registro que se escribe
// el cliente regresa, procedente de la caché de moneda del servidor.
const { ppp } = usePowerPortalsPro();
const account = await ppp.retrieveRecordAsync('account', id);
const symbol = account.currency?.symbol; // por ejemplo, "$"
const isoCode = account.currency?.isoCode; // por ejemplo, "USD"
const name = account.currency?.name; // por ejemplo, "Dólar estadounidense"// En cualquier registro recuperado a través de IPowerPortalsProService:
var account = await _powerPortalsProService.RetrieveRecordAsync("account", id);
var symbol = account.Currency?.Symbol; // por ejemplo, "$"
var isoCode = account.Currency?.IsoCode; // por ejemplo, "USD"
var name = account.Currency?.Name; // por ejemplo, "Dólar estadounidense"Acceso directo
Para código personalizado del lado del servidor que necesita buscar una moneda por id, enumerar todas las monedas de la organización (un selector de divisas, una visualización de tipos de cambio), o resolver la moneda base, inyecta ICurrencyCache:
[Inject]
private ICurrencyCache _currencyCache { get; set; } = null!;
protected override async Task OnInitializedAsync()
{
// Consulta por id (por ejemplo, desde el transactioncurrencyid de un registro)
var currency = await _currencyCache.GetAsync(transactionCurrencyId);
// Enumerar todas las monedas configuradas en la organización
var allCurrencies = await _currencyCache.GetAllAsync();
// Resolver la moneda base de la organización (organization.basecurrencyid)
var baseCurrency = await _currencyCache.GetBaseCurrencyAsync();
}
Propina
ICurrencyCachees solo del lado del servidor. El código del navegador que necesita la moneda de la fila seTableRecord.Currencylee (Blazor) /record.currency(React) directamente — se llena automáticamente cuando el registro lleva una columna de dinero.
ICurrencyCache Interface
Métodos
Nombre | Parámetros | Tipo | Descripción |
|---|---|---|---|
Get | Guid id | Currency? | Devuelve la moneda con el |
GetAll | IReadOnlyDictionary<Guid, Currency> | Devuelve todas las monedas configuradas en la organización, claveadas por id. Cargado como un solo instantánea — los llamantes que iteran el diccionario no verán actualizaciones parciales si el La caché se actualiza a mitad de la enumeración. | |
GetAllAsync | CancellationToken token | Task<IReadOnlyDictionary<Guid, Currency>> | Devuelve asíncronamente todas las monedas configuradas en la organización, claveadas por id. |
GetAsync | Guid id CancellationToken token | Task<Currency> | Devuelve asíncronamente la moneda con el |
GetBaseCurrency | Currency? | La moneda base de la organización, resuelta desde | |
GetBaseCurrencyAsync | CancellationToken token | Task<Currency> | Devuelve de forma asincrónica la moneda base de la organización. |
GetGetAllGetAllAsyncGetAsyncCancellationToken token
GetBaseCurrencyGetBaseCurrencyAsyncCurrency Clase
Propiedades
Nombre | Tipo | Default | Descripción |
|---|---|---|---|
ExchangeRate | decimal | 1 | Tipo de cambio frente a la moneda base de la organización, desde |
IsoCode | string | El código ISO 4217 de tres letras (por ejemplo, | |
Name | string | El nombre de la moneda local proviene | |
Precision | int | 2 | Decimales para mostrar, obtenidos de MoneyMetadata.Precision, que es la precisión a nivel de columna; Este es el impago a nivel de moneda. |
Symbol | string | El símbolo de visualización que Dataverse almacena en |
ExchangeRateIsoCodeNamePrecisionMoneyMetadata.Precision, que es la precisión a nivel de columna; Este es el impago a nivel de moneda.Symbol