//TODO: better logging private void LogFailedCommit() { var errors = ( from entry in ErroredOutActions let eventHandlerType = entry.Key.GetType().ToString() let errorMessage = entry.Value.Message let stackTrace = entry.Value.StackTrace let innerExceptionMessage = entry.Value.InnerException != null ? entry.Value.InnerException.Message : string.Empty let innerExceptionStackTrace = entry.Value.InnerException != null ? entry.Value.InnerException.StackTrace : string.Empty select string.Format("ACTION HANDLER: {0} ::: ERROR MESSAGE: {1} ::: STACK TRACE: {2} ::: INNER EXCEPTION MESSAGE: {3} ::: INNER EXCEPTION STACK TRACE: {4}", eventHandlerType, errorMessage, stackTrace, innerExceptionMessage, innerExceptionStackTrace) ).ToList(); var notProcessedEventHandlerTypes = ( from h in NotProcessedActions.ToList() select h.GetType() ).ToList(); var processedEventHandlerTypes = ( from h in ProcessedActions.ToList() select h.GetType() ).ToList(); var message = string.Format( "TRANSACTION ERROR [ID: {0}] " + "[ACTION TYPE: {1}] " + "[ACTION DATA: {2}] " + "[ERRORS: {3}] " + "[NOT PROCESSED ACTION HANDLERS: {4}] " + "[PROCESSED ACTION HANDLERS: {5}]", Id, Message.GetType(), Message, string.Join(" ^^^ ", errors), string.Join(", ", notProcessedEventHandlerTypes), string.Join(", ", processedEventHandlerTypes)); _log.Error(message); }
public void DoAllSimpleActions() { foreach (var processingAction in ProcessedActions.Where(pa => pa.IsSimple)) { processingAction.Apply(this); } }
public void DoAllActions() { if (ProcessedActions.Any()) { CurrentFrame.ProcessedImage = CurrentFrame.Image.Clone() as Bitmap; } foreach (var processingAction in ProcessedActions) { processingAction.Apply(this); } }
public void Commit() { while (NotProcessedActions.Count > 0) { var handler = NotProcessedActions.Dequeue(); try { handler.Invoke(Message); ProcessedActions.Add(handler); } catch (Exception ex) { ErroredOutActions.Add(handler, ex); throw; } } }
public void ClearNodeAnalysisState() { CurrentNode = null; ProcessedActions.Clear(); }