private CCAColorPaletteResult ProcessWithRaptor(CCAColorPaletteRequest request) { TColourPalettes palettes; palettes.Transitions = new TColourPalette[0]; if (raptorClient.GetMachineCCAColourPalettes(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID, request.assetId, request.startUtc, request.endUtc, request.liftId, out palettes)) { if (palettes.Transitions.Length == 0) { throw new ServiceException(HttpStatusCode.BadRequest, new ContractExecutionResult(ContractExecutionStatesEnum.InternalProcessingError, "Failed to process CCA data colour palettes request sent to Raptor.")); } return(new CCAColorPaletteResult(RaptorConverters.convertColorPalettes(palettes.Transitions))); } throw new ServiceException(HttpStatusCode.BadRequest, new ContractExecutionResult(ContractExecutionStatesEnum.InternalProcessingError, "Failed to process CCA data colour palettes request.")); }
public async Task <CCAColorPaletteResult> Get( [FromQuery] long projectId, [FromQuery] long assetId, [FromQuery] DateTime?startUtc = null, [FromQuery] DateTime?endUtc = null, [FromQuery] int?liftId = null, [FromQuery] Guid?assetUid = null) { log.LogInformation("Get: " + Request.QueryString); var projectUid = await((RaptorPrincipal)User).GetProjectUid(projectId); var request = CCAColorPaletteRequest.CreateCCAColorPaletteRequest(projectId, assetId, startUtc, endUtc, liftId, projectUid, assetUid); request.Validate(); return(await RequestExecutorContainerFactory.Build <CCAColorPaletteExecutor>(logger, #if RAPTOR raptorClient, #endif configStore : configurationStore, trexCompactionDataProxy : TRexCompactionDataProxy, userId : UserId, fileImportProxy : FileImportProxy).ProcessAsync(request) as CCAColorPaletteResult); }
public async Task <CompactionDetailPaletteResult> GetCCAPalette( [FromQuery] Guid projectUid, [FromQuery] Guid filterUid) { Log.LogInformation($"{nameof(GetCCAPalette)}: " + Request.QueryString); var filterTask = GetCompactionFilter(projectUid, filterUid); var projectIdTask = GetLegacyProjectId(projectUid); await Task.WhenAll(filterTask, projectIdTask); //Quickest for now to use old Landfill executor var filter = filterTask.Result; if (filter?.ContributingMachines?.Count != 1) { throw new ServiceException(HttpStatusCode.BadRequest, new ContractExecutionResult(ContractExecutionStatesEnum.ValidationError, "CCA palette requires one and only one machine filter")); } var machine = filter.ContributingMachines[0]; var request = CCAColorPaletteRequest.CreateCCAColorPaletteRequest(projectIdTask.Result, machine.AssetId, filter.StartUtc, filter.EndUtc, filter.LayerNumber, projectUid, machine.AssetUid); request.Validate(); var palette = await RequestExecutorContainerFactory.Build <CCAColorPaletteExecutor>(LoggerFactory, #if RAPTOR RaptorClient, #endif configStore : ConfigStore, trexCompactionDataProxy : TRexCompactionDataProxy, userId : GetUserId(), fileImportProxy : FileImportProxy).ProcessAsync(request) as CCAColorPaletteResult; return(CompactionDetailPaletteResult.CreateCompactionDetailPaletteResult( DetailPalette.CreateDetailPalette( palette.Palettes.Select(x => ColorValue.CreateColorValue(x.Color, x.Value)).ToList(), 0, null)));//black for too thick }