I am currently doing something similar to the following on every save() I do.
I trap for broken rules and bubble them up with one custom exception class, and throw exceptions for the other results. Because of this I wind up with an ugly Case statement for every save. Is there any reason not to move this logic to the ErrorSaving event of the business object's themselves to centralize this or is this just the best way to do it?
Thanks!
Clay
Another option would be to create the BoBase class and override Save(). Call MyBase.Save() and check the return value within your own Save() and check the select case there. You could even show your form with the broken rules there if you don't mind taking that portion of the UI out of the UI...