Example #1
0
        async Task <TResult> SendAsync <TResult> (
            IXipRequestMessage message,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            TResult         result      = default(TResult);
            XipErrorMessage errorResult = null;

            await SendAsync(message, response => {
                errorResult = response as XipErrorMessage;
                if (errorResult == null)
                {
                    result = (TResult)response;
                }
            }, cancellationToken);

            if (errorResult != null)
            {
                Log.Error(TAG, $"SendAsync ({message.GetType ()}) -> " +
                          $"{typeof (TResult)}: {errorResult}");
                errorResult.Throw();
            }

            return(result);
        }