public async Task <ManagementGroupRates> ResolveAsync <TContext>(ResolveFieldContext <TContext> context)
        {
            var entityId = BuildEntityId(context);

            if (entityId == null)
            {
                return(null);
            }

            try
            {
                var request = new LoadManagementGroupRatesRequest
                {
                    EntityReferences = new[]
                    {
                        new AggregateEntityReference
                        {
                            AdapterRecordReferences = new[]
                            {
                                new EntityReference
                                {
                                    SourceSystemId   = entityId,
                                    SourceSystemName = SourceSystemNames.Rates,
                                },
                            }
                        },
                    },
                    Live = _executionContextManager.GraphExecutionContext.QueryLive,
                };
                var rates = await _entityRepository.LoadManagementGroupRatesAsync(request, context.CancellationToken);

                return(rates.SquashedEntityResults.FirstOrDefault()?.SquashedEntity);
            }
            catch (Exception ex)
            {
                _logger.Error($"Error resolving rates for {entityId}: {ex.Message}", ex);
                throw;
            }
        }
Пример #2
0
 public async Task <EntityCollection <ManagementGroupRates> > LoadManagementGroupRatesAsync(LoadManagementGroupRatesRequest request, CancellationToken cancellationToken)
 {
     return(await LoadAsync <ManagementGroupRates>(request, cancellationToken));
 }