private HttpRequest GetRequest(SquashRequest request) { return(GetRequest(JsonConvert.SerializeObject(request, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver(), NullValueHandling = NullValueHandling.Ignore, }))); }
public async Task <SquashResponse> SquashAsync(SquashRequest request, CancellationToken cancellationToken) { var profileName = request.Algorithm ?? "default"; _logger.Info($"Loading profile {profileName}"); var profile = await _profileRepository.GetProfileAsync(profileName, cancellationToken); if (profile == null) { throw new ProfileNotFoundException(profileName); } var result = await SquashAsync(request, profile, cancellationToken); return(new SquashResponse { SquashedEntityResults = result, }); }
private async Task <SquashedEntityResult[]> SquashAsync(SquashRequest request, Profile profile, CancellationToken cancellationToken) { if (request.EntityName.Equals(LearningProviderEntityName, StringComparison.InvariantCultureIgnoreCase)) { _logger.Info("Squashing learning providers"); return(await _learningProviderSquasher.SquashAsync( request.EntityReferences, request.AggregatesRequest, request.Fields ?? new string[0], request.Live, request.PointInTime, profile, cancellationToken)); } if (request.EntityName.Equals(ManagementGroupEntityName, StringComparison.InvariantCultureIgnoreCase)) { _logger.Info("Squashing management groups"); return(await _managementGroupSquasher.SquashAsync( request.EntityReferences, request.AggregatesRequest, request.Fields ?? new string[0], request.Live, request.PointInTime, profile, cancellationToken)); } if (request.EntityName.Equals(LearningProviderRatesEntityName, StringComparison.InvariantCultureIgnoreCase)) { _logger.Info("Squashing learning provider rates"); return(await _learningProviderRatesSquasher.SquashAsync( request.EntityReferences, request.AggregatesRequest, request.Fields ?? new string[0], request.Live, request.PointInTime, profile, cancellationToken)); } if (request.EntityName.Equals(ManagementGroupRatesEntityName, StringComparison.InvariantCultureIgnoreCase)) { _logger.Info("Squashing management group rates"); return(await _managementGroupRatesSquasher.SquashAsync( request.EntityReferences, request.AggregatesRequest, request.Fields ?? new string[0], request.Live, request.PointInTime, profile, cancellationToken)); } if (request.EntityName.Equals(CensusEntityName, StringComparison.InvariantCultureIgnoreCase)) { _logger.Info("Squashing censuses"); return(await _censusSquasher.SquashAsync( request.EntityReferences, request.AggregatesRequest, request.Fields ?? new string[0], request.Live, request.PointInTime, profile, cancellationToken)); } throw new InvalidRequestException($"Unsupported entity type {request.EntityName}"); }