/* IServiceClientAsync signatures cannot match IServiceGateway APIs to make them unambiguous */

        public static async Task <ApiResult <TResponse> > Api <TResponse>(this IServiceClientAsync client, IReturn <TResponse> requestDto, CancellationToken token = default(CancellationToken))
        {
            try
            {
                return(ApiResult.Create(await client.SendAsync <TResponse>((object)requestDto, token).ConfigAwait()));
            }
            catch (Exception e)
            {
                return(e.ToApiResult <TResponse>());
            }
        }
 public static Task <List <TResponse> > SendAllAsync <TResponse>(this IServiceClientAsync client, List <IReturn <TResponse> > requestDtos, CancellationToken token = default(CancellationToken))
 {
     return(client.SendAllAsync <TResponse>(requestDtos, token));
 }
        /* IServiceClientAsync signatures cannot match IServiceGateway APIs to make them unambiguous */

        public static Task <TResponse> Send <TResponse>(this IServiceClientAsync client, IReturn <TResponse> requestDto, CancellationToken token = default(CancellationToken))
        {
            return(client.SendAsync <TResponse>((object)requestDto, token));
        }