public async Task <IMethodInvocationResult> InterceptAsync(IAsyncMethodInvocation methodInvocation)
            {
                var argument      = methodInvocation.GetArgument("value");
                var argumentValue = (int)argument.Value;

                int result;

                return(PrecalculatedValues.TryGetValue(argumentValue, out result)
                    ? methodInvocation.CreateResult(result)
                    : await methodInvocation.InvokeNextAsync().ConfigureAwait(false));
            }
            public async Task <IMethodInvocationResult> InterceptAsync(IAsyncMethodInvocation methodInvocation)
            {
                var argument      = methodInvocation.GetArgument("value");
                var argumentValue = (int)argument.Value;

                if (argumentValue < 0)
                {
                    argument.Value = -argumentValue;
                }
                return(await methodInvocation.InvokeNextAsync().ConfigureAwait(false));
            }
            public async Task<IMethodInvocationResult> InterceptAsync(IAsyncMethodInvocation methodInvocation)
            {
                var argument = methodInvocation.GetArgument("value");
                var argumentValue = (int)argument.Value;

                int result;
                return PrecalculatedValues.TryGetValue(argumentValue, out result)
                    ? methodInvocation.CreateResult(result)
                    : await methodInvocation.InvokeNextAsync().ConfigureAwait(false);
            }
 public async Task<IMethodInvocationResult> InterceptAsync(IAsyncMethodInvocation methodInvocation)
 {
     var argument = methodInvocation.GetArgument("value");
     var argumentValue = (int)argument.Value;
     if (argumentValue < 0)
     {
         argument.Value = -argumentValue;
     }
     return await methodInvocation.InvokeNextAsync().ConfigureAwait(false);
 }