public async Task <IActionResult> VolumesReport([FromQuery, BindRequired] SimpleFilter filter) { Log.LogInformation($"VolumesReport Filter: {filter}"); // Ground to design only // SummaryVolumesRequest // Returns SummaryVolumesResult var filterUid = await ConvertSimpleFilter(filter); // Base UID needs to be filter // Top UID needs to be design var route = $"/volumes/summary?projectUid={filter.ProjectUid}&baseUid={filterUid}&topUid={filter.DesignFileUid}"; var result = await _productivity3dV2ProxyCompaction.ExecuteGenericV2Request <CompactionVolumesSummaryResult>(route, HttpMethod.Get, null, CustomHeaders); if (result != null) { return(Json(result)); } ServiceExceptionHandler.ThrowServiceException(HttpStatusCode.BadRequest, (int)Now3DExecutionStates.ErrorCodes.GeneralError, null, "No Data"); return(null); }
// It is likely we have a combination of filters stored for a project. // Older ones will have legacyAssetId (assetUid = null) and more recent ones will have AssetUid (legacyAssetID == -1) private static async Task PairUpAssetIdentifiers(string projectUid, List <MachineDetails> machines, IProductivity3dV2ProxyCompaction productivity3dV2ProxyCompaction, IHeaderDictionary customHeaders) { if (machines == null || !machines.Any()) { return; } var route = $"/projects/{projectUid}/machines"; var assetList = await productivity3dV2ProxyCompaction.ExecuteGenericV2Request <MachineExecutionResult>(route, HttpMethod.Get, null, customHeaders); foreach (var assetMatch in assetList.MachineStatuses) { foreach (var assetOnDesignPeriod in machines.FindAll(a => a.AssetUid == assetMatch.AssetUid)) { assetOnDesignPeriod.AssetId = assetMatch.AssetId; } } }