예제 #1
0
        public static async Task Main(string[] args)
        {
            // pull our account sid, auth token and the phone numbers from the usersecrets.json file
            // in a production app we'd obviously want to store these in a secure spot like our appSettings
            // or environmental variables.
            // see https://www.twilio.com/blog/2018/05/user-secrets-in-a-net-core-console-app.html
            // for more info on user secrets

            var builder = new ConfigurationBuilder();

            builder.AddUserSecrets <Program>();
            var config = builder.Build();

            var accountSid = config["twilio:accountSid"];
            var authToken  = config["twilio:authToken"];
            var fromPhone  = config["app:fromPhone"];
            var toPhone    = config["app:toPhone"];

            TwilioClient.SetRestClient(new ChaosTwilioRestClient(new TwilioRestClient(accountSid, authToken), TimeSpan.FromSeconds(10)));

            var policy = PollyPolicies.TwilioCircuitBreakerWrappedInRetryPolicy;

            var message = await policy.ExecuteAsync(async() => await MessageResource.CreateAsync(
                                                        body: "Coming to you live from a very chaotic world!",
                                                        from: new Twilio.Types.PhoneNumber(fromPhone),
                                                        to: new Twilio.Types.PhoneNumber(toPhone)
                                                        ));

            Console.WriteLine($"Message sent! Sid: {message.Sid}");
            Console.ReadLine();
        }
        private async Task <string> GetXmlResultFromLookupAsync(string lookupString)
        {
            var ctrl = GetTestController();

            var messageDict = new Dictionary <string, string> {
                { "body", lookupString }
            };
            var responseMock = new Response(System.Net.HttpStatusCode.Created, JsonConvert.SerializeObject(messageDict));

            var twilioClientMock = new Mock <ITwilioRestClient>();

            twilioClientMock.Setup(c => c.AccountSid).Returns("AccountSID");
            twilioClientMock.Setup(c => c.Request(It.IsAny <Request>()))
            .Returns(responseMock);
            TwilioClient.SetRestClient(twilioClientMock.Object);

            var message = new SmsRequest
            {
                To   = "fakenumber",
                Body = lookupString
            };
            var result = (await ctrl.Lookup(message)) as TwiMLResult;

            Assert.IsNotNull(result);

            return(result.Data.ToString());
        }
예제 #3
0
        static void Main(string[] args)
        {
            TwilioClient.Init("username", "password");
            TwilioClient.SetRestClient(new TwilioEmulatorRestClient(TwilioClient.GetRestClient(), new Uri("http://localhost:5000")));

            var call = CallResource.Create(new PhoneNumber("12345"), new PhoneNumber("34567"));

            Console.WriteLine("Hello World!");
        }
예제 #4
0
        public static ITwilioRestClient Setup(HttpStatusCode statusCode, object response)
        {
            var json           = JsonConvert.SerializeObject(response);
            var testHttpClient = new FakeTwilioHttpClient(statusCode, json);
            var testClient     = new TwilioRestClient("ACxxx", "test",
                                                      httpClient: testHttpClient);

            TwilioClient.SetRestClient(testClient);
            return(testClient);
        }
 public CallCreator(ITwilioRestClient restClient) : this()
 {
     TwilioClient.SetRestClient(restClient);
 }