Пример #1
0
        public async Task Test_GetPostalAddressDetails_With_PostcodeAndStreet()
        {
            var result = await testCandidate.GetPostalAddressDetails("12,123", new Guid("1534AA41-391F-4579-A18D-D7EDF5B5F918"));

            Assert.IsNotNull(result);
            Assert.IsTrue(result.ToList().Count == 1);
            Assert.AreEqual(result.ToList()[0].Postcode, "123");
            Assert.AreEqual(result.ToList()[0].Thoroughfare, "12");
        }
Пример #2
0
        /// <summary>
        /// Filter PostalAddress based on the post code
        /// </summary>
        /// <param name="selectedItem">selectedItem</param>
        /// <param name="unitGuid">unitGuid</param>
        /// <returns>List of postcodes</returns>
        public async Task <PostalAddressDTO> GetPostalAddressDetails(string selectedItem, Guid unitGuid)
        {
            using (loggingHelper.RMTraceManager.StartTrace("Business.GetPostalAddressDetails"))
            {
                string methodName = typeof(UnitLocationBusinessService) + "." + nameof(GetPostalAddressDetails);
                loggingHelper.LogMethodEntry(methodName, LoggerTraceConstants.UnitManagerAPIPriority, LoggerTraceConstants.UnitManagerBusinessServiceMethodEntryEventId);

                List <BindingDTO> nybDetails       = new List <BindingDTO>();
                List <BindingDTO> routeDetails     = new List <BindingDTO>();
                PostalAddressDTO  postalAddressDto = null;
                var postalAddressDetails           = await postalAddressDataService.GetPostalAddressDetails(selectedItem, unitGuid);

                var routeData = unitManagerIntegrationService.GetRouteData(selectedItem.Split(',')[1].Trim(), "ID,RouteName").Result;
                routeData.ForEach(route =>
                {
                    routeDetails.Add(new BindingDTO {
                        Value = route.ID, DisplayText = route.RouteName
                    });
                });

                Guid nybAddressTypeId = unitManagerIntegrationService.GetReferenceDataGuId(PostalAddressType, FileType.Nyb.ToString()).Result;

                Mapper.Initialize(cfg =>
                {
                    cfg.CreateMap <PostalAddressDataDTO, PostalAddressDTO>();
                });

                var postalAddressDetailsDTO = Mapper.Map <List <PostalAddressDataDTO>, List <PostalAddressDTO> >(postalAddressDetails);

                if (postalAddressDetailsDTO != null && postalAddressDetailsDTO.Count > 0)
                {
                    postalAddressDto = postalAddressDetailsDTO[0];
                    foreach (var postalAddress in postalAddressDetailsDTO)
                    {
                        if (postalAddress.AddressType_GUID == nybAddressTypeId)
                        {
                            string address          = string.Join(",", Convert.ToString(postalAddress.BuildingNumber) ?? string.Empty, postalAddress.BuildingName, postalAddress.SubBuildingName);
                            string formattedAddress = Regex.Replace(address, ",+", ",").Trim(',');
                            nybDetails.Add(new BindingDTO {
                                Value = postalAddress.ID, DisplayText = formattedAddress
                            });
                        }
                    }

                    nybDetails.OrderBy(n => n.DisplayText);
                    nybDetails.Add(new BindingDTO {
                        Value = Guid.Empty, DisplayText = "Not Shown"
                    });
                    postalAddressDto.NybAddressDetails = nybDetails;
                    postalAddressDto.RouteDetails      = routeDetails;
                }

                loggingHelper.LogMethodExit(methodName, LoggerTraceConstants.UnitManagerAPIPriority, LoggerTraceConstants.UnitManagerBusinessServiceMethodExitEventId);
                return(postalAddressDto);
            }
        }