Пример #1
0
        public void DeleteProvisionedPhoneNumber(PhoneNumber model)
        {
            if (model == null || String.IsNullOrEmpty(model.sid))
            {
                throw new ArgumentNullException("model");
            }

            _parameters.Clear();
            AddParametersFromPhoneNumberModel(model);

            _account.request(String.Format("Accounts/{0}/IncomingPhoneNumbers/{1}.json", _account.id, model.sid), "DELETE", _parameters);
        }
Пример #2
0
 private void AddParametersFromPhoneNumberModel(PhoneNumber model)
 {
     if (String.IsNullOrEmpty(model.phone_number) && !model.areaCode.HasValue)
     {
         throw new ArgumentNullException("model");
     }
     if (!String.IsNullOrEmpty(model.phone_number))
     {
         _parameters.Add("PhoneNumber", model.phone_number);
     }
     else if (model.areaCode != null)
     {
         _parameters.Add("AreaCode", model.areaCode);
     }
     if (!String.IsNullOrEmpty(model.friendly_name))
     {
         _parameters.Add("FriendlyName", model.friendly_name);
     }
     if (model.voice_url != null)
     {
         _parameters.Add("VoiceUrl", model.voice_url);
     }
     if (!String.IsNullOrEmpty(model.voice_method))
     {
         _parameters.Add("VoiceMethod", model.voice_method);
     }
     if (model.voice_fallback_url != null)
     {
         _parameters.Add("VoiceFallbackUrl", model.voice_fallback_url);
     }
     if (!String.IsNullOrEmpty(model.voice_fallback_method))
     {
         _parameters.Add("VoiceFallbackMethod", model.voice_fallback_method);
     }
     if (!String.IsNullOrEmpty(model.status_callback))
     {
         _parameters.Add("StatusCallback", model.status_callback);
     }
     if (!String.IsNullOrEmpty(model.status_callback_method))
     {
         _parameters.Add("StatusCallbackMethod", model.status_callback_method);
     }
     if (model.sms_url != null)
     {
         _parameters.Add("SmsUrl", model.sms_url);
     }
     if (!String.IsNullOrEmpty(model.sms_method))
     {
         _parameters.Add("SmsMethod", model.sms_method);
     }
     if (model.sms_fallback_url != null)
     {
         _parameters.Add("SmsFallbackUrl", model.sms_fallback_url);
     }
     if (!String.IsNullOrEmpty(model.sms_fallback_method))
     {
         _parameters.Add("SmsFallbackMethod", model.sms_fallback_method);
     }
 }
Пример #3
0
        public PhoneNumber UpdateProvisionedPhoneNumber(PhoneNumber model)
        {
            if (model == null || String.IsNullOrEmpty(model.sid))
            {
                throw new ArgumentNullException("model");
            }

            _parameters.Clear();
            AddParametersFromPhoneNumberModel(model);

            _twilioResponse = _account.request(String.Format("Accounts/{0}/IncomingPhoneNumbers/{1}.json", _account.id, model.sid), "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 = data.voice_caller_id_lookup,
                date_created = !String.IsNullOrEmpty(data.date_created) ? Convert.ToDateTime(data.date_created) : null,
                date_updated = !String.IsNullOrEmpty(data.date_updated) ? Convert.ToDateTime(data.date_updated) : null,
                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 = !String.IsNullOrEmpty(data.capabilities.sms) ? Convert.ToBoolean(data.capabilities.sms) : null,
                    voice = !String.IsNullOrEmpty(data.capabilities.voice) ? Convert.ToBoolean(data.capabilities.voice) : null
                },
                status_callback = data.status_callback,
                status_callback_method = data.status_callback_method,
                api_version = data.api_version,
                uri = data.uri
            };

            return phone;
        }
Пример #4
0
        public PhoneNumber ProvisionTollFreePhoneNumber(String phoneNumber, String voiceUrl = null, String voiceFallbackUrl = null)
        {
            if ((String.IsNullOrEmpty(phoneNumber)))
            {
                throw new ArgumentNullException("phoneNumber");
            }

            _parameters.Clear();
            _parameters.Add("PhoneNumber", phoneNumber);
            if (!String.IsNullOrEmpty(voiceUrl))
            {
                _parameters.Add("VoiceUrl", voiceUrl);
                _parameters.Add("VoiceMethod", "GET");
            }
            if (!String.IsNullOrEmpty(voiceFallbackUrl))
            {
                _parameters.Add("VoiceFallbackUrl", voiceFallbackUrl);
            }

            _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 = !String.IsNullOrEmpty(data.date_created) ? Convert.ToDateTime(data.date_created) : null,
                date_updated = !String.IsNullOrEmpty(data.date_updated) ? Convert.ToDateTime(data.date_updated) : null,
                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 = !String.IsNullOrEmpty(data.capabilities.sms) ? Convert.ToBoolean(data.capabilities.sms) : null,
                    voice = !String.IsNullOrEmpty(data.capabilities.voice) ? Convert.ToBoolean(data.capabilities.voice) : null
                },
                status_callback = data.status_callback,
                status_callback_method = data.status_callback_method,
                api_version = data.api_version,
                uri = data.uri
            };

            return phone;
        }
Пример #5
0
        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;
        }
Пример #6
0
        public void DeleteProvisionedPhoneNumberWithNullSidShouldReturnArgumentNullException()
        {
            try
            {
                var account = new TwilioAccountMock();
                var phoneAutomation = new PhoneAutomation(account);

                var phoneNumber = new PhoneNumber();

                phoneAutomation.DeleteProvisionedPhoneNumber(phoneNumber);
            }
            catch (System.Exception ex)
            {
                Assert.IsInstanceOfType(ex, typeof(System.ArgumentNullException));
            }
            
        }
Пример #7
0
        public void DeleteProvisionedPhoneNumberWithValidPhoneObjectShouldReturnNullBody()
        {
            var account = new TwilioAccountMock();
            var phoneAutomation = new PhoneAutomation(account);

            var phoneNumber = new PhoneNumber{
                sid = "1", phone_number = "1"
            };
            phoneAutomation.DeleteProvisionedPhoneNumber(phoneNumber);
        }