Revisit commit operation architecture
Commit operations serve no purpose when there is no check/listen operation of the corresponding type.
As such, the available operations in the tree should at least be filtered to match the selected check or listen operations.
This raises questions about the viability of the commit operation as an operation altogether, namely:
An operation consists of a name (not particular useful for a commit), retry wait (it'll never fail), retry count (it'll never fail), and child/next operations for which the use thereof for commit operations is dubious.
It may be worth considering giving an operation list something along the lines of exit conditions, where it could:
DoNothing
CommitChanges
based on whether it Suceeded.
Alternatively, it could just automatically do that behind the scenes.
Either way, this wouldn't break the role of a check operation with regards to the operation list, namely because the operation list already knows about and works with it's check operation directly.
Customer support service by UserEcho
If this implementation would break too much, an alternative could be to merge every commit operation into a single "Commit" operation. Then add a void Commit() method to ICheckOperation which gets called by the generic commit operation. Then generically you could just add a commit operation when they add a check operation.
Migrated to Visual Studio Online.