private static MultiValuedProperty <string> GetTargetUserExtensions(ADUser sourceUser, UMDialPlan targetDialPlan, out string targetUserSipResourceIdentifier) { EumAddress?eumAddress = null; foreach (ProxyAddress proxyAddress in sourceUser.EmailAddresses) { if (proxyAddress.IsPrimaryAddress && proxyAddress.Prefix == ProxyAddressPrefix.UM && EumAddress.IsValidEumAddress(proxyAddress.AddressString)) { eumAddress = new EumAddress?(EumAddress.Parse(proxyAddress.AddressString)); break; } } if (eumAddress == null) { throw new CouldNotGenerateExtensionException(); } MultiValuedProperty <string> multiValuedProperty = new MultiValuedProperty <string>(); UMUriType umuriType = Utils.DetermineNumberType(eumAddress.Value.Extension); if (umuriType != targetDialPlan.URIType) { throw new SourceAndTargetDialPlanURITypeMismatchException(umuriType.ToString(), targetDialPlan.URIType.ToString()); } if (umuriType == UMUriType.TelExtn) { multiValuedProperty.Add(eumAddress.Value.Extension); targetUserSipResourceIdentifier = null; } else { targetUserSipResourceIdentifier = eumAddress.Value.Extension; } foreach (ProxyAddress proxyAddress2 in sourceUser.EmailAddresses) { if (!proxyAddress2.IsPrimaryAddress && proxyAddress2.Prefix == ProxyAddressPrefix.UM && EumAddress.IsValidEumAddress(proxyAddress2.AddressString)) { EumAddress eumAddress2 = EumAddress.Parse(proxyAddress2.AddressString); if (eumAddress2.PhoneContext == eumAddress.Value.PhoneContext) { multiValuedProperty.Add(eumAddress2.Extension); } } } return(multiValuedProperty); }