Replace custom exceptions everywhere with our CommandFailureException
Obviously, catch those on the controller, and populate the ModelState with the errors returned.
Setup localization services before doing this, as we’ll have to localize the error messages too.