コード例 #1
0
        /// <summary>
        /// Formats the address according to the specified format string.
        /// </summary>
        /// <remarks>
        /// Valid format specifiers are as follows:
        ///     %C - country code, preceded by +
        ///     %c - country code if different from default country code specified in <see cref="FormatSettings"/>
        ///     %A - area code
        ///     %N - phone number in form XXX-XXXX
        ///     %X - extension, preceded by x
        /// </remarks>
        /// <param name="tn"></param>
        /// <param name="format"></param>
        /// <returns></returns>
        public static string Format(TelephoneDetail tn, string format)
        {
            string result = format;

            result = result.Replace("%C", tn.CountryCode == null ? "" : string.Format("+{0}", tn.CountryCode));

            result = result.Replace("%c",
                                    (tn.CountryCode == null || tn.CountryCode == FormatSettings.Default.TelephoneNumberSuppressCountryCode) ? ""
                : string.Format("+{0}", tn.CountryCode));

            result = result.Replace("%A", tn.AreaCode == null ? "" : tn.AreaCode);
            result = result.Replace("%N", StringMask.Apply(tn.Number, FormatSettings.Default.TelephoneNumberLocalMask) ?? "");
            result = result.Replace("%X", string.IsNullOrEmpty(tn.Extension) ? "" : string.Format("x{0}", tn.Extension));

            return(result.Trim());
        }
コード例 #2
0
        public TelephoneNumber CreateTelephoneNumber(TelephoneDetail telephoneDetail)
        {
            if (telephoneDetail == null)
            {
                return(null);
            }

            TelephoneNumber telephoneNumber = new TelephoneNumber();

            telephoneNumber.CountryCode      = telephoneDetail.CountryCode;
            telephoneNumber.AreaCode         = telephoneDetail.AreaCode;
            telephoneNumber.Number           = telephoneDetail.Number;
            telephoneNumber.Extension        = telephoneDetail.Extension;
            telephoneNumber.ValidRange.From  = telephoneDetail.ValidRangeFrom;
            telephoneNumber.ValidRange.Until = telephoneDetail.ValidRangeUntil;

            SimplifiedPhoneTypeAssembler simplePhoneTypeAssembler = new SimplifiedPhoneTypeAssembler();

            simplePhoneTypeAssembler.UpdatePhoneNumber(telephoneDetail.Type, telephoneNumber);

            return(telephoneNumber);
        }
コード例 #3
0
        public TelephoneDetail CreateTelephoneDetail(TelephoneNumber telephoneNumber, IPersistenceContext context)
        {
            if (telephoneNumber == null)
            {
                return(null);
            }

            TelephoneDetail telephoneDetail = new TelephoneDetail();

            telephoneDetail.CountryCode = telephoneNumber.CountryCode;
            telephoneDetail.AreaCode    = telephoneNumber.AreaCode;
            telephoneDetail.Number      = telephoneNumber.Number;
            telephoneDetail.Extension   = telephoneNumber.Extension;

            SimplifiedPhoneTypeAssembler simplePhoneTypeAssembler = new SimplifiedPhoneTypeAssembler();

            telephoneDetail.Type = simplePhoneTypeAssembler.GetSimplifiedPhoneType(telephoneNumber);

            telephoneDetail.ValidRangeFrom  = telephoneNumber.ValidRange.From;
            telephoneDetail.ValidRangeUntil = telephoneNumber.ValidRange.Until;

            return(telephoneDetail);
        }
コード例 #4
0
 /// <summary>
 /// Formats the telephone number according to the default format as specified in <see cref="FormatSettings"/>
 /// </summary>
 /// <param name="tn"></param>
 /// <returns></returns>
 public static string Format(TelephoneDetail tn)
 {
     return(Format(tn, FormatSettings.Default.TelephoneNumberDefaultFormat));
 }
コード例 #5
0
 public PhoneNumberEditorComponent(TelephoneDetail phoneNumber, List <EnumValueInfo> phoneTypeChoices)
 {
     _phoneNumber      = phoneNumber;
     _phoneTypeChoices = phoneTypeChoices;
     _phoneTypeEnabled = phoneTypeChoices.Count > 1;
 }