public static BrokenRuleToken Create(IEntityExtensions extension, params BrokenRule[] brokenRules) { var token = new BrokenRuleToken { BrokenRules = brokenRules, Extension = extension }; token.Add(); return(token); }
protected bool InvokeWithExceptionFilter(Action action) { _brokenRuleToken.Cancel(); try { action(); } catch (Exception e) { if (ExceptionHelper.IsNonrecoverableException(e)) { throw; } if (_exceptionActions != null) { foreach (var exceptionAction in _exceptionActions) { var brokenRules = exceptionAction.Process(e); if (brokenRules == null) { continue; } _brokenRuleToken = BrokenRuleToken.Create(Extensions, brokenRules); return(true); // Handled } } throw; } return(false); }