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 }