public async Task TRexExecutor_Manual_Happy_Project_NoValidPosition_Calculated() { var projectUid = Guid.NewGuid().ToString(); var projectAccountUid = Guid.NewGuid().ToString(); var projectOfInterest = new ProjectData { ProjectUID = projectUid, ProjectType = CwsProjectType.AcceptsTagFiles, CustomerUID = projectAccountUid, IsArchived = false, ProjectGeofenceWKT = projectBoundary }; var northing = 67.8; var easting = 21.3; var getProjectUidsRequest = new GetProjectUidsRequest(projectUid, "cb450serial", 0, 0, northing, easting); var coordinateConversionResult = new CoordinateConversionResult(new TwoDConversionCoordinate[0]); var projectForProjectUid = projectOfInterest; var platformSerialDevice = (DeviceData)null; var projectListForPlatformSerial = (ProjectDataResult)null; var expectedResult = new GetProjectUidsResult(string.Empty, string.Empty, string.Empty); await ExecuteManual (getProjectUidsRequest, projectForProjectUid, platformSerialDevice, projectListForPlatformSerial, coordinateConversionResult, expectedResult, expectedCode : 3018, expectedMessage : "Manual Import: Unable to determine lat/long from northing/easting position" ); }
private async Task ExecuteManual(GetProjectUidsRequest request, ProjectData projectForProjectUid, DeviceData platformDevice, ProjectDataResult projectListForPlatform, CoordinateConversionResult coordinateConversionResult, GetProjectUidsResult expectedResult, int expectedCode, string expectedMessage ) { projectProxy.Setup(p => p.GetProject(request.ProjectUid, It.IsAny <HeaderDictionary>())).ReturnsAsync(projectForProjectUid); deviceProxy.Setup(d => d.GetDevice(request.PlatformSerial, It.IsAny <HeaderDictionary>())).ReturnsAsync(platformDevice); if (platformDevice != null) { deviceProxy.Setup(d => d.GetProjectsForDevice(platformDevice.DeviceUID, It.IsAny <HeaderDictionary>())).ReturnsAsync(projectListForPlatform); } if (coordinateConversionResult != null) { tRexCompactionDataProxy.Setup(x => x.SendDataPostRequest <CoordinateConversionResult, CoordinateConversionRequest>( It.IsAny <CoordinateConversionRequest>(), It.IsAny <string>(), It.IsAny <HeaderDictionary>(), false)) .ReturnsAsync(coordinateConversionResult); } var executor = RequestExecutorContainer.Build <ProjectUidsExecutor>( _loggerFactory.CreateLogger <ProjectUidsExecutorManualTests>(), ConfigStore, authorization.Object, projectProxy.Object, deviceProxy.Object, tRexCompactionDataProxy.Object, requestCustomHeaders); var result = await executor.ProcessAsync(request) as GetProjectUidsResult; ValidateResult(result, expectedResult, expectedCode, expectedMessage); }
public async Task TRexExecutor_Manual_Happy_Project_NoDevice_UsingNE() { var projectUid = Guid.NewGuid().ToString(); var projectAccountUid = Guid.NewGuid().ToString(); var projectOfInterest = new ProjectData { ProjectUID = projectUid, ProjectType = CwsProjectType.AcceptsTagFiles, CustomerUID = projectAccountUid, IsArchived = false, ProjectGeofenceWKT = projectBoundary }; var northing = 67.8; var easting = 21.3; var getProjectUidsRequest = new GetProjectUidsRequest(projectUid, "cb460Serial", 0, 0, northing, easting); // expected convertNEtoLL result var points = new[] { new TwoDConversionCoordinate(insideLong.LonDegreesToRadians(), insideLat.LatDegreesToRadians()) }; var coordinateConversionResult = new CoordinateConversionResult(points); var projectForProjectUid = projectOfInterest; var platformSerialDevice = (DeviceData)null; var projectListForplatformSerial = (ProjectDataResult)null; var expectedResult = new GetProjectUidsResult(projectUid, string.Empty, string.Empty); await ExecuteManual (getProjectUidsRequest, projectForProjectUid, platformSerialDevice, projectListForplatformSerial, coordinateConversionResult, expectedResult, expectedCode : 0, expectedMessage : "success" ); }
public ContractExecutionResult TRexConvertNEtoLL([FromBody] CoordinateConversionRequest coordinateConversionRequest) { Logger.LogInformation($"{nameof(TRexConvertNEtoLL)}: coordinateConversionRequest {JsonConvert.SerializeObject(coordinateConversionRequest)}"); var coordinateConversionResult = new CoordinateConversionResult(new TwoDConversionCoordinate[0]); if (coordinateConversionRequest.ProjectUid.HasValue && coordinateConversionRequest.ProjectUid.Value.ToString() == ConstantsUtil.DIMENSIONS_PROJECT_UID) { var points = new[] { new TwoDConversionCoordinate(180, 15) }; coordinateConversionResult = new CoordinateConversionResult(points); } Logger.LogInformation($"{nameof(TRexConvertNEtoLL)}: CoordinateConversionResult {JsonConvert.SerializeObject(coordinateConversionResult)}"); return(coordinateConversionResult); }
public async Task TRexExecutor_Auto_Happy_EC520device_WithProject_UsingNE() { var projectUid = Guid.NewGuid().ToString(); var projectAccountUid = Guid.NewGuid().ToString(); var projectOfInterest = new ProjectData { ProjectUID = projectUid, ProjectType = CwsProjectType.AcceptsTagFiles, CustomerUID = projectAccountUid, IsArchived = false, ProjectGeofenceWKT = projectBoundary }; var northing = 67.8; var easting = 21.3; var getProjectUidsRequest = new GetProjectUidsRequest(string.Empty, "ec520Serial", 0.0, 0.0, northing, easting); // expected convertNEtoLL result var points = new [] { new TwoDConversionCoordinate(insideLong.LonDegreesToRadians(), insideLat.LatDegreesToRadians()) }; var coordinateConversionResult = new CoordinateConversionResult(points); var platformSerialDeviceUid = Guid.NewGuid().ToString(); var platformSerialAccountUid = Guid.NewGuid().ToString(); var platformSerialDevice = new DeviceData { CustomerUID = platformSerialAccountUid, DeviceUID = platformSerialDeviceUid }; var projectListForPlatformSerial = new ProjectDataResult() { ProjectDescriptors = new List <ProjectData>() { projectOfInterest } }; var expectedResult = new GetProjectUidsResult(projectUid, platformSerialDeviceUid, platformSerialAccountUid); await ExecuteAuto (getProjectUidsRequest, platformSerialDevice, projectListForPlatformSerial, coordinateConversionResult, expectedResult, expectedCode : 0, expectedMessage : "success" ); }
private async Task <ProjectExtentsResult> FormatProjectExtentsResult( Guid projectUid, CoordinateConversionResult coordinateConversionResult) { Log.LogInformation($"{nameof(FormatProjectExtentsResult)}: {coordinateConversionResult}"); var project = await((RaptorPrincipal)User).GetProject(projectUid); var returnResult = new ProjectExtentsResult { minLat = coordinateConversionResult.ConversionCoordinates[0].Y, minLng = coordinateConversionResult.ConversionCoordinates[0].X, maxLat = coordinateConversionResult.ConversionCoordinates[1].Y, maxLng = coordinateConversionResult.ConversionCoordinates[1].X }; //In case we have rogue tag files distorting the extents, restrict to project boundary var projectPoints = CommonConverters.GeometryToPoints(project.ProjectGeofenceWKT).ToList(); var projMinLat = projectPoints.Min(p => p.Lat); var projMinLng = projectPoints.Min(p => p.Lon); var projMaxLat = projectPoints.Max(p => p.Lat); var projMaxLng = projectPoints.Max(p => p.Lon); if (returnResult.minLat < projMinLat || returnResult.minLat > projMaxLat || returnResult.maxLat < projMinLat || returnResult.maxLat > projMaxLat || returnResult.minLng < projMinLng || returnResult.minLng > projMaxLng || returnResult.maxLng < projMinLng || returnResult.maxLng > projMaxLng) { returnResult.minLat = projMinLat; returnResult.minLng = projMinLng; returnResult.maxLat = projMaxLat; returnResult.maxLng = projMaxLng; } //Convert to degrees to return returnResult.minLat = returnResult.minLat.LatRadiansToDegrees(); returnResult.minLng = returnResult.minLng.LonRadiansToDegrees(); returnResult.maxLat = returnResult.maxLat.LatRadiansToDegrees(); returnResult.maxLng = returnResult.maxLng.LonRadiansToDegrees(); Log.LogInformation("GetProjectExtents result: " + JsonConvert.SerializeObject(returnResult)); return(returnResult); }
public async Task TRexExecutor_Auto_Sad_EC520device_WithProject_NoValidPosition_Calculated() { var projectUid = Guid.NewGuid().ToString(); var projectAccountUid = Guid.NewGuid().ToString(); var projectOfInterest = new ProjectData { ProjectUID = projectUid, ProjectType = CwsProjectType.AcceptsTagFiles, CustomerUID = projectAccountUid, IsArchived = false, ProjectGeofenceWKT = projectBoundary }; var northing = 67.8; var easting = 21.3; var getProjectUidsRequest = new GetProjectUidsRequest(string.Empty, "ec520Serial", 0.0, 0.0, northing, easting); var coordinateConversionResult = new CoordinateConversionResult(new TwoDConversionCoordinate[0]); var platformSerialDeviceUid = Guid.NewGuid().ToString(); var platformSerialAccountUid = Guid.NewGuid().ToString(); var platformSerialDevice = new DeviceData { CustomerUID = platformSerialAccountUid, DeviceUID = platformSerialDeviceUid }; var projectListForPlatformSerial = new ProjectDataResult() { ProjectDescriptors = new List <ProjectData>() { projectOfInterest } }; var expectedResult = new GetProjectUidsResult(string.Empty, platformSerialDeviceUid, platformSerialAccountUid); await ExecuteAuto (getProjectUidsRequest, platformSerialDevice, projectListForPlatformSerial, coordinateConversionResult, expectedResult, expectedCode : 3044, expectedMessage : "No projects found at the location provided" ); }