I've inherited a code base that makes heavy use of switch statements (C#, FWIW) to drive some logic. It's a multi-tenant web app where one set of switch statements pertains to how content displays and the other pertains to links to features, at least in most cases.
I have an opportunity to refactor, so I'm taking the content-related switch statements and planning to create a base Content class with a Render() method and then setup specific children for types that need to override the base implementation.
But there are rare cases where rendering HTML is based on content type and the specific tenant and I don't want to have all the new Render() methods with the exact same problem I started with. Is there a pattern that can help with this type of situation?
I see a few other similar questions on SO, but I'm not sure how to apply the answers here.