void IMethodAdvice.Advise(MethodAdviceContext context) { if (context.IsAwaitable() && context.IsAsync()) { AdviseAsync(context, async() => await context.ProceedAsync1()); } else if (context.IsAwaitable()) { AdviseAsync(context, context.ProceedAsync1); } else { AdviseSync(context, () => { context.Proceed(); return(1); }); } }
private async Task <ActivationContext> DoAfter(MethodAdviceContext context, ActivationContext ctx) { if (context.IsAwaitable()) { ctx = await AfterProcesssingAsync(ctx); } else { ctx = AfterProcesssing(ctx); } return(ctx); }
private async Task <ActivationContext> DoBefore(MethodAdviceContext context) { ActivationContext ctx; if (context.IsAwaitable()) { ctx = await BeforeProcessingAsync(new ActivationContext(context)); } else { ctx = BeforeProcessing(new ActivationContext(context)); } return(ctx); }