Exemple #1
0
        public void CreatePassCountSummaryResult_Should_return_null_object_When_TotalAreaCoveredSqMeters_is_null()
        {
            var passCountSummaryResult = new PassCountSummaryResult(null, false, 1, 2, 3, 4, 0);
            var result = new CompactionPassCountSummaryResult(passCountSummaryResult);

            Assert.IsNotNull(result);
            Assert.AreEqual(ContractExecutionResult.DefaultMessage, result.Message);
            Assert.IsNull(result.SummaryData);
        }
Exemple #2
0
        public void CreatePassCountSummaryResult_Should_return_full_object_When_totalAreaCoveredSqMeters_is_not_null()
        {
            var targetPassCountRange   = new TargetPassCountRange(6, 7);
            var passCountSummaryResult = new PassCountSummaryResult(targetPassCountRange, false, 1, 2, 3, 4, 342.12);
            var result = new CompactionPassCountSummaryResult(passCountSummaryResult);

            Assert.IsNotNull(result);
            Assert.AreEqual(ContractExecutionResult.DefaultMessage, result.Message);

            Assert.AreEqual(342.12, result.SummaryData.TotalAreaCoveredSqMeters);
            Assert.AreEqual(1, result.SummaryData.PercentEqualsTarget);
            Assert.AreEqual(2, result.SummaryData.PercentGreaterThanTarget);
            Assert.AreEqual(3, result.SummaryData.PercentLessThanTarget);
            Assert.IsNotNull(result.SummaryData.PassCountTarget);
            Assert.AreEqual(6, result.SummaryData.PassCountTarget.MinPassCountMachineTarget);
            Assert.AreEqual(7, result.SummaryData.PassCountTarget.MaxPassCountMachineTarget);
        }
Exemple #3
0
        public async Task <ActionResult <CompactionPassCountSummaryResult> > GetPassCountSummary(
            [FromQuery] Guid projectUid,
            [FromQuery] Guid?filterUid)
        {
            Log.LogInformation($"{nameof(GetPassCountSummary)}: " + Request.QueryString);

            var validationResult = await ValidateFilterAgainstProjectExtents(projectUid, filterUid);

            if (!validationResult.isValidFilterForProjectExtents)
            {
                return(Ok(new CompactionPassCountSummaryResult()));
            }

            var request = await GetPassCountRequest(projectUid, filterUid, validationResult.filterResult, isSummary : true);

            request.Validate();

            try
            {
                var result = await RequestExecutorContainerFactory
                             .Build <SummaryPassCountsExecutor>(LoggerFactory,
                                                                configStore : ConfigStore, trexCompactionDataProxy : TRexCompactionDataProxy, customHeaders : CustomHeaders,
                                                                userId : GetUserId(), fileImportProxy : FileImportProxy)
                             .ProcessAsync(request) as PassCountSummaryResult;

                var passCountSummaryResult = new CompactionPassCountSummaryResult(result);

                Log.LogInformation($"{nameof(GetPassCountSummary)} result: " + JsonConvert.SerializeObject(passCountSummaryResult));

                await SetCacheControlPolicy(projectUid);

                return(Ok(passCountSummaryResult));
            }
            catch (ServiceException exception)
            {
                Log.LogError($"{nameof(GetPassCountSummary)}: {exception.GetResult.Message} ({exception.GetResult.Code})");
                return(BadRequest(new ContractExecutionResult(exception.GetResult.Code, exception.GetResult.Message)));
            }
            finally
            {
                Log.LogInformation($"{nameof(GetPassCountSummary)} returned: " + Response.StatusCode);
            }
        }