Example #1
0
        public void ExceptionsOnAsyncMethodsNeedToBeManagedCarefully()
        {
            const int maxHeadlines = 500;
            var       gate         = new ManualResetEvent(false);
            ListNewsHeadlinesResponseDTO listNewsHeadlinesResponseDto = null;

            _rpcClient.News.BeginListNewsHeadlinesWithSource(
                source: "dj",
                category: "UK", maxResults: maxHeadlines + 1,
                callback: (response) =>
            {
                try
                {
                    listNewsHeadlinesResponseDto = _rpcClient.News.EndListNewsHeadlinesWithSource(response);
                }
                catch (ReliableHttpException ex)
                {
                    Console.WriteLine("ResponseTest: {0}", ex.ResponseText);
                    KoanAssert.That(ex.Message, Is.StringContaining("You cannot request more than 500 news headlines"), "The error will talk about 'You cannot request more than 500 news headlines'");
                }

                gate.Set();
            },
                state: null);

            gate.WaitOne(TimeSpan.FromSeconds(60)); //Never wait indefinately
        }
Example #2
0
        public void FetchNews_sync()
        {
            var ctx = new CIAPI.Rpc.Client(RPC_URI, STREAMING_URI, AppKey);

            ctx.LogIn(USERNAME, PASSWORD);

            ListNewsHeadlinesResponseDTO news = ctx.News.ListNewsHeadlinesWithSource("dj", "UK", 10);

            //do something with the news

            ctx.LogOut();
        }
        public void FetchNews_sync()
        {
            var ctx = new CIAPI.Rpc.Client(RPC_URI);

            ctx.LogIn(USERNAME, PASSWORD);

            ListNewsHeadlinesResponseDTO news = ctx.ListNewsHeadlines("UK", 10);

            //do something with the news

            ctx.LogOut();
        }
Example #4
0
        public void FetchNews_async()
        {
            var ctx  = new CIAPI.Rpc.Client(RPC_URI, STREAMING_URI, AppKey);
            var gate = new AutoResetEvent(false);

            ctx.BeginLogIn(USERNAME, PASSWORD, a =>
            {
                ctx.EndLogIn(a);

                ctx.News.BeginListNewsHeadlinesWithSource("dj", "UK", 10, newsResult =>
                {
                    ListNewsHeadlinesResponseDTO news = ctx.News.EndListNewsHeadlinesWithSource(newsResult);

                    //do something with the news

                    ctx.BeginLogOut(result =>
                    {
                        gate.Set();
                    }, null);
                }, null);
            }, null);

            gate.WaitOne();
        }