Пример #1
0
        public async Task <TResult> SendAsync <TResult>(Expression <Func <T, TResult> > func, IAPIClientInterceptor interceptor = null)
        {
            if (func == null)
            {
                throw new ArgumentNullException(nameof(func));
            }

            if (interceptor == null)
            {
                interceptor = Interceptor;
            }

            var lambda = Lambda.Compose(func);

            var msg = await SendLambdaAsync(lambda, interceptor);

            msg.EnsureSuccessStatusCode();

            if (msg as object is TResult result)
            {
                return(result);
            }

            return(await msg.ToObjectAsync <TResult>(Environment.MediaTypeFormatters));
        }