Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
            }));
        }