Exemple #1
0
        private async Task <WildlifeReportGeometry> PerformSpatialValidationAndConversionAsync(WildlifeReportTyped typedRow)
        {
            var submissionRow  = _submissionRows[(decimal)typedRow.RowNum];
            var wildlifeReport = new WildlifeReportGeometry(typedRow, null);

            if (typedRow.SpatialData == SpatialData.Gps)
            {
                await PerformSpatialGpsValidation(wildlifeReport, submissionRow);

                SetVarianceWarningDetail(submissionRow, typedRow.HighwayUnique,
                                         GetGpsString(typedRow.Latitude, typedRow.Longitude),
                                         GetGpsString(typedRow.Latitude, typedRow.Longitude),
                                         _thresholdSpLevel);
            }
            else if (typedRow.SpatialData == SpatialData.Lrs)
            {
                await PerformSpatialLrsValidation(wildlifeReport, submissionRow);

                SetVarianceWarningDetail(submissionRow, typedRow.HighwayUnique,
                                         GetOffsetString(typedRow.Offset),
                                         GetOffsetString(typedRow.Offset),
                                         _thresholdSpLevel);
            }

            return(wildlifeReport);
        }
Exemple #2
0
        private async Task PerformSpatialLrsValidation(WildlifeReportGeometry wildlifeReport, HmrSubmissionRow submissionRow)
        {
            var errors   = new Dictionary <string, List <string> >();
            var typedRow = wildlifeReport.WildlifeReportTyped;

            var result = await _spatialService.ValidateLrsPointAsync((decimal)typedRow.Offset, typedRow.HighwayUnique, Fields.HighwayUnique, _thresholdSpLevel, errors);

            if (result.result == SpValidationResult.Fail)
            {
                SetErrorDetail(submissionRow, errors, _statusService.FileLocationError);
            }
            else if (result.result == SpValidationResult.Success)
            {
                typedRow.HighwayUniqueLength = result.rfiSegment.Length;
                typedRow.HighwayUniqueName   = result.rfiSegment.Descr;

                typedRow.Longitude          = result.point.Longitude;
                typedRow.Latitude           = result.point.Latitude;
                wildlifeReport.Geometry     = _geometryFactory.CreatePoint(result.point.ToTopologyCoordinate());
                submissionRow.StartVariance = typedRow.Offset - result.snappedOffset;
            }
        }