twilio.sugar.Model.PhoneAutomation.ProvisionPhoneNumber C# (CSharp) Method

ProvisionPhoneNumber() public method

public ProvisionPhoneNumber ( String phoneNumber = null, Int32 areaCode = null, twilio.sugar.Model.PhoneNumber model = null, String voiceUrl = null, String voiceFallbackUrl = null, String smsUrl = null, String smsFallbackUrl = null ) : twilio.sugar.Model.PhoneNumber
phoneNumber String
areaCode System.Int32
model twilio.sugar.Model.PhoneNumber
voiceUrl String
voiceFallbackUrl String
smsUrl String
smsFallbackUrl String
return twilio.sugar.Model.PhoneNumber
        public PhoneNumber ProvisionPhoneNumber(String phoneNumber = null, Int32? areaCode = null, PhoneNumber model = null, String voiceUrl = null, String voiceFallbackUrl = null, String smsUrl = null, String smsFallbackUrl = null)
        {
            if ((String.IsNullOrEmpty(phoneNumber) && !areaCode.HasValue) && model == null) {
                throw new ArgumentNullException("phoneNumber");
            }

            _parameters.Clear();
            if (model != null) {
                AddParametersFromPhoneNumberModel(model);
            } else if (!String.IsNullOrEmpty(phoneNumber)) {
                _parameters.Add("PhoneNumber", phoneNumber);
            } else if (areaCode != null) {
                _parameters.Add("AreaCode", areaCode);
            }

            if (!String.IsNullOrEmpty(voiceUrl)) {
                _parameters.Add("VoiceUrl", voiceUrl);
                _parameters.Add("VoiceMethod", "GET");
            }
            if (!String.IsNullOrEmpty(voiceFallbackUrl)) {
                _parameters.Add("VoiceFallbackUrl", voiceFallbackUrl);
            }
            if (!String.IsNullOrEmpty(smsUrl)) {
                _parameters.Add("smsUrl", smsUrl);
                _parameters.Add("smsMethod", "GET");
            }
            if (!String.IsNullOrEmpty(smsFallbackUrl)) {
                _parameters.Add("smsFallbackUrl", smsFallbackUrl);
            }

            _twilioResponse = _account.request(String.Format("Accounts/{0}/IncomingPhoneNumbers.json", _account.id), "POST", _parameters);
            dynamic data = ParseResponseData(_twilioResponse);

            var phone = new PhoneNumber
            {
                sid = data.sid,
                account_sid = data.account_sid,
                friendly_name = data.friendly_name,
                phone_number = data.phone_number,
                voice_url = data.voice_url,
                voice_method = data.voice_method,
                voice_fallback_url = data.voice_fallback_url,
                voice_fallback_method = data.voice_fallback_method,
                voice_caller_id_lookup = Convert.ToBoolean(data.voice_caller_id_lookup),
                date_created = Convert.ToDateTime(data.date_created),
                date_updated = Convert.ToDateTime(data.date_updated),
                sms_url = data.sms_url,
                sms_method = data.sms_method,
                sms_fallback_url = data.sms_fallback_url,
                sms_fallback_method = data.sms_fallback_method,
                capabilities = new Capabilities {
                    sms = Convert.ToBoolean(data.capabilities.sms),
                    voice = Convert.ToBoolean(data.capabilities.voice)
                },
                status_callback = data.status_callback,
                status_callback_method = data.status_callback_method,
                api_version = data.api_version,
                uri = data.uri
            };

            return phone;
        }

Usage Example

Ejemplo n.º 1
0
        public void ProvisionNumberShouldReturnNewNumberResource()
        {
            var account = new TwilioAccountMock();
            var phoneAutomation = new PhoneAutomation(account);
            var number = phoneAutomation.ProvisionPhoneNumber("555-555-5555");

            Assert.IsNotNull(number);
        }