Пример #1
0
        public MainWindow()
        {
            InitializeComponent();

            var events = new EventsExtension<Window>(this);
            events.MouseDrag.Subscribe(d => d.Subscribe(v => Delta = v, () => Delta = null));
        }
        public async void ArrayParams()
        {
            using (var rc = new RestClient(
                       Environment.GetEnvironmentVariable("RINGCENTRAL_CLIENT_ID"),
                       Environment.GetEnvironmentVariable("RINGCENTRAL_CLIENT_SECRET"),
                       Environment.GetEnvironmentVariable("RINGCENTRAL_SERVER_URL")
                       ))
            {
                await rc.Authorize(
                    Environment.GetEnvironmentVariable("RINGCENTRAL_USERNAME"),
                    Environment.GetEnvironmentVariable("RINGCENTRAL_EXTENSION"),
                    Environment.GetEnvironmentVariable("RINGCENTRAL_PASSWORD")
                    );

                var eventsExtension = new EventsExtension();
                rc.InstallExtension(eventsExtension);

                var          count        = 0;
                const string phoneNumber  = "+15889546648";
                const string phoneNumber2 = "+17700083226";
                var          addressBook  = rc.Restapi().Account().Extension().AddressBook();

                void EventHandler1(object sender, HttpRequestMessage httpRequestMessage)
                {
                    Assert.Equal($"?phoneNumber={phoneNumber}", httpRequestMessage.RequestUri.Query);
                    count += 1;
                }

                eventsExtension.BeforeRequest += EventHandler1;
                await addressBook.Contact().List(new ListContactsParameters {
                    phoneNumber = new[] { phoneNumber }
                });

                eventsExtension.BeforeRequest -= EventHandler1;
                Assert.Equal(1, count);

                void EventHandler2(object sender, HttpRequestMessage httpRequestMessage)
                {
                    Assert.Equal($"?phoneNumber={phoneNumber}&phoneNumber={phoneNumber2}",
                                 httpRequestMessage.RequestUri.Query);
                    count += 1;
                }

                eventsExtension.BeforeRequest += EventHandler2;
                await addressBook.Contact().List(new ListContactsParameters
                {
                    phoneNumber = new[] { phoneNumber, phoneNumber2 }
                });

                eventsExtension.BeforeRequest -= EventHandler2;
                Assert.Equal(2, count);
            }
        }
Пример #3
0
        public async void RequestSuccess()
        {
            using (var rc = new RestClient(
                       Environment.GetEnvironmentVariable("RINGCENTRAL_CLIENT_ID"),
                       Environment.GetEnvironmentVariable("RINGCENTRAL_CLIENT_SECRET"),
                       Environment.GetEnvironmentVariable("RINGCENTRAL_SERVER_URL")
                       ))
            {
                await rc.Authorize(
                    Environment.GetEnvironmentVariable("RINGCENTRAL_USERNAME"),
                    Environment.GetEnvironmentVariable("RINGCENTRAL_EXTENSION"),
                    Environment.GetEnvironmentVariable("RINGCENTRAL_PASSWORD")
                    );

                var eventsExtension = new EventsExtension();
                await rc.InstallExtension(eventsExtension);

                var count = 0;

                void EventHandler(object sender, HttpMessages httpMessages)
                {
                    var rateLimitRemaining = httpMessages.httpResponseMessage.Headers
                                             .First(i => i.Key == "X-Rate-Limit-Remaining").Value.First();

                    Assert.True(int.Parse(rateLimitRemaining) > 0);
                    count += 1;
                }

                eventsExtension.RequestSuccess += EventHandler;

                const string phoneNumber = "+15889546648";
                var          addressBook = rc.Restapi().Account().Extension().AddressBook();

                await addressBook.Contact().List(new ListContactsParameters {
                    phoneNumber = new[] { phoneNumber }
                });

                var china = await rc.Restapi().Dictionary().Country("46").Get();

                Assert.Equal("China", china.name);

                eventsExtension.RequestSuccess -= EventHandler;
                Assert.Equal(2, count);
            }
        }
Пример #4
0
        public async void AfterCall()
        {
            using (var rc = new RestClient(
                       Environment.GetEnvironmentVariable("RINGCENTRAL_CLIENT_ID"),
                       Environment.GetEnvironmentVariable("RINGCENTRAL_CLIENT_SECRET"),
                       Environment.GetEnvironmentVariable("RINGCENTRAL_SERVER_URL")
                       ))
            {
                await rc.Authorize(
                    Environment.GetEnvironmentVariable("RINGCENTRAL_USERNAME"),
                    Environment.GetEnvironmentVariable("RINGCENTRAL_EXTENSION"),
                    Environment.GetEnvironmentVariable("RINGCENTRAL_PASSWORD")
                    );

                var eventsExtension = new EventsExtension();
                await rc.InstallExtension(eventsExtension);

                var count = 0;

                void EventHandler(object sender, HttpMessages httpMessages)
                {
                    var userAgent = httpMessages.httpRequestMessage.Headers
                                    .First(i => i.Key == "X-User-Agent").Value.ToArray();

                    Assert.Single(userAgent);
                    Assert.StartsWith("Unknown/0.0.1 RingCentral.Net/", userAgent[0]);
                    count += 1;
                }

                eventsExtension.RequestSuccess += EventHandler;

                var china = await rc.Restapi().Dictionary().Country("46").Get();

                Assert.Equal("China", china.name);
                Assert.Equal(1, count);

                eventsExtension.RequestSuccess -= EventHandler;
            }
        }