public void Test_GetNearestSegment() { var actualResult = testCandidate.GetNearestSegment(point, referenceDataCategoryList); Assert.IsNotNull(actualResult); Assert.IsNotNull(actualResult.First().Item1); Assert.IsNotNull(actualResult.First().Item2); }
/// <summary> /// Get the nearest street for operational object. /// </summary> /// <param name="operationalObjectPoint">Operational object unique identifier.</param> /// <returns>Nearest street and the intersection point.</returns> public List <Tuple <NetworkLinkDTO, SqlGeometry> > GetNearestSegment(DbGeometry operationalObjectPoint) { using (loggingHelper.RMTraceManager.StartTrace("Business.GetNearestSegment")) { string methodName = typeof(NetworkManagerBusinessService) + "." + nameof(GetNearestSegment); loggingHelper.LogMethodEntry(methodName, priority, entryEventId); List <string> categoryNamesNameValuePairs = new List <string> { ReferenceDataCategoryNames.AccessLinkParameters, }; List <string> categoryNamesSimpleLists = new List <string> { ReferenceDataCategoryNames.NetworkLinkType }; var referenceDataCategoryList = networkManagerIntegrationService.GetReferenceDataNameValuePairs(categoryNamesNameValuePairs).Result; referenceDataCategoryList.AddRange( networkManagerIntegrationService.GetReferenceDataSimpleLists(categoryNamesSimpleLists).Result); List <Tuple <NetworkLinkDataDTO, SqlGeometry> > nearestSegmentList = streetNetworkDataService.GetNearestSegment(operationalObjectPoint, referenceDataCategoryList); NetworkLinkDTO networkLinkDTO = null; List <Tuple <NetworkLinkDTO, SqlGeometry> > nearestSegment = new List <Tuple <NetworkLinkDTO, SqlGeometry> >(); if (nearestSegmentList != null) { foreach (var item in nearestSegmentList) { networkLinkDTO = new NetworkLinkDTO() { Id = item.Item1.ID, LinkGeometry = item.Item1.LinkGeometry, NetworkLinkType_GUID = item.Item1.NetworkLinkTypeGUID, TOID = item.Item1.TOID }; nearestSegment.Add(new Tuple <NetworkLinkDTO, SqlGeometry>(networkLinkDTO, item.Item2)); } } loggingHelper.LogMethodExit(methodName, priority, exitEventId); return(nearestSegment); } }