コード例 #1
0
        /// <summary>
        /// Calls raptor to get project extents
        /// </summary>
        protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item)
        {
            try
            {
                var  request = CastRequestObjectTo <ExtentRequest>(item);
                bool success;
                BoundingBox3DGrid bbExtents = null;
#if RAPTOR
                if (UseTRexGateway("ENABLE_TREX_GATEWAY_TILES"))
                {
#endif
                var siteModelId = request.ProjectUid.ToString();

                bbExtents = await trexCompactionDataProxy.SendDataGetRequest <BoundingBox3DGrid>(siteModelId, $"/sitemodels/{siteModelId}/extents", customHeaders);

                success = bbExtents != null;
#if RAPTOR
            }
            else
            {
                success = raptorClient.GetDataModelExtents(request.ProjectId ?? VelociraptorConstants.NO_PROJECT_ID,
                                                           RaptorConverters.convertSurveyedSurfaceExlusionList(request.excludedSurveyedSurfaceIds),
                                                           out var extents);

                bbExtents = RaptorConverters.ConvertExtents(extents);
            }
#endif
                if (success)
                {
                    if (bbExtents.ValidExtents)
                    {
                        return(ProjectExtentsResult.CreateProjectExtentsResult(bbExtents));
                    }
                }

                throw CreateServiceException <ProjectExtentsSubmitter>();
            }
            finally
            {
                ContractExecutionStates.ClearDynamic(); // clear memory
            }
        }