private TRiakResult UseConnection <TRiakResult>(Func <IRiakConnection, TRiakResult> useFun, Func <ResultCode, string, bool, TRiakResult> onError) where TRiakResult : RiakResult { if (_disposing) { return(onError(ResultCode.ShuttingDown, "Connection is shutting down", true)); } var response = _connections.Consume(useFun); if (response.Item1) { return(response.Item2); } return(onError(ResultCode.NoConnections, "Unable to acquire connection", true)); }
private Task <TRiakResult> UseConnection <TRiakResult>(Func <IRiakConnection, Task <TRiakResult> > useFun, Func <ResultCode, string, bool, TRiakResult> onError) where TRiakResult : RiakResult { if (_disposing) { return(TaskResult(onError(ResultCode.ShuttingDown, "Connection is shutting down", true))); } // attempt consume return(_connections.Consume(useFun) .ContinueWith((Task <Tuple <bool, TRiakResult> > finishedTask) => { var result = finishedTask.Result; if (result.Item1) { return result.Item2; } return onError(ResultCode.NoConnections, "Unable to acquire connection", true); })); }