private static CreatedContext InvokeClientFilter( IClientFilter filter, CreatingContext preContext, Func <CreatedContext> continuation) { filter.OnCreating(preContext); if (preContext.Canceled) { return(new CreatedContext( preContext, true, null)); } var wasError = false; CreatedContext postContext; try { postContext = continuation(); } catch (Exception ex) { wasError = true; postContext = new CreatedContext( preContext, false, ex); filter.OnCreated(postContext); if (!postContext.ExceptionHandled) { throw; } } if (!wasError) { filter.OnCreated(postContext); } return(postContext); }
private static CreatedContext InvokeClientFilter( IClientFilter filter, CreatingContext preContext, Func<CreatedContext> continuation) { filter.OnCreating(preContext); if (preContext.Canceled) { return new CreatedContext( preContext, true, null); } var wasError = false; CreatedContext postContext; try { postContext = continuation(); } catch (Exception ex) { wasError = true; postContext = new CreatedContext( preContext, false, ex); filter.OnCreated(postContext); if (!postContext.ExceptionHandled) { throw; } } if (!wasError) { filter.OnCreated(postContext); } return postContext; }