-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error Handler Report #3998
base: master
Are you sure you want to change the base?
Error Handler Report #3998
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -3997,7 +3997,7 @@ public void RunActivity(Activity activity, bool doContinueRun = false, bool stan | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PostScopeVariableHandling(activity.Variables); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NotifyActivityEnd(activity); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CalculateErrorHandlersActivtyEnd(activity); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mLastExecutedActivity = activity; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CurrentBusinessFlow.PreviousActivity = activity; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GiveUserFeedback(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -5863,5 +5863,25 @@ public void ClearBindings() | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CurrentBusinessFlow.PropertyChanged -= CurrentBusinessFlow_PropertyChanged; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
private void CalculateErrorHandlersActivtyEnd(Activity activity) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
var errorHandlerList = CurrentBusinessFlow.Activities.Where(x => x.GetType() == typeof(ErrorHandler) && x.Status != eRunStatus.Skipped); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
foreach (ErrorHandler errActivity in errorHandlerList) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
if ( activity.EndTimeStamp > errActivity.EndTimeStamp && activity.Status == eRunStatus.Failed && !errActivity.IsAddedToReport) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uint evetTime = RunListenerBase.GetEventTime(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
foreach (RunListenerBase runnerListener in mRunListeners) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
runnerListener.ActivityEnd(evetTime, errActivity); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
errActivity.IsAddedToReport = true; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+5866
to
+5885
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Review error handler activity end time calculation logic The new method has some potential issues:
Here's a suggested refactor to address these issues: -private void CalculateErrorHandlersActivtyEnd(Activity activity)
+private void CalculateErrorHandlerActivityEnd(Activity activity)
{
- var errorHandlerList = CurrentBusinessFlow.Activities.Where(x => x.GetType() == typeof(ErrorHandler) && x.Status != eRunStatus.Skipped);
+ if (activity?.EndTimeStamp == null || activity.Status != eRunStatus.Failed)
+ {
+ return;
+ }
+ var errorHandlerList = CurrentBusinessFlow.Activities
+ .OfType<ErrorHandler>()
+ .Where(x => x.Status != eRunStatus.Skipped &&
+ x.EndTimeStamp != null &&
+ !x.IsAddedToReport);
- foreach (ErrorHandler errActivity in errorHandlerList)
- {
- if ( activity.EndTimeStamp > errActivity.EndTimeStamp && activity.Status == eRunStatus.Failed && !errActivity.IsAddedToReport)
- {
- uint evetTime = RunListenerBase.GetEventTime();
- foreach (RunListenerBase runnerListener in mRunListeners)
- {
- runnerListener.ActivityEnd(evetTime, errActivity);
- }
- errActivity.IsAddedToReport = true;
- }
- }
+ foreach (ErrorHandler errHandler in errorHandlerList)
+ {
+ if (activity.EndTimeStamp > errHandler.EndTimeStamp)
+ {
+ uint eventTime = RunListenerBase.GetEventTime();
+ foreach (RunListenerBase runnerListener in mRunListeners)
+ {
+ runnerListener.ActivityEnd(eventTime, errHandler);
+ }
+ errHandler.IsAddedToReport = true;
+ }
+ }
} 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Consider following existing property patterns and adding documentation
The new
IsAddedToReport
property deviates from the established patterns in the class:[IsSerializedForLocalRepository]
attribute that other properties haveConsider applying this refactor to maintain consistency:
📝 Committable suggestion