public static Task<IExecuteWatchResponse> ExecuteWatchAsync(this IElasticClient client, string watchId, Func<ExecuteWatchDescriptor, ExecuteWatchDescriptor> selector = null)
 {
     selector = selector ?? (s => s);
     var descriptor = new ExecuteWatchDescriptor();
     if (!watchId.IsNullOrEmpty())
         descriptor.Id(watchId);
     descriptor = selector(descriptor);
     return ((IHighLevelToLowLevelDispatcher)client).DispatchAsync<ExecuteWatchDescriptor, ExecuteWatchRequestParameters, ExecuteWatchResponse, IExecuteWatchResponse>(
         descriptor,
         (p, d) => client.Raw.WatcherExecuteWatchDispatchAsync<ExecuteWatchResponse>(p, d)
     );
 }
        public static Task <IExecuteWatchResponse> ExecuteWatchAsync(this IElasticClient client, string watchId, Func <ExecuteWatchDescriptor, ExecuteWatchDescriptor> selector = null)
        {
            selector = selector ?? (s => s);
            var descriptor = new ExecuteWatchDescriptor();

            if (!watchId.IsNullOrEmpty())
            {
                descriptor.Id(watchId);
            }
            descriptor = selector(descriptor);
            return(((IHighLevelToLowLevelDispatcher)client).DispatchAsync <ExecuteWatchDescriptor, ExecuteWatchRequestParameters, ExecuteWatchResponse, IExecuteWatchResponse>(
                       descriptor,
                       (p, d) => client.Raw.WatcherExecuteWatchDispatchAsync <ExecuteWatchResponse>(p, d)
                       ));
        }