Namespace: Lisa.Core.Domain.Interfaces
The ISettings interface is used to populate the settings UI in Veva, where users can configure various aspects of the system. Any module which needs configuration from the user can provide it's own implementation of the ISettings interface and each implementation will render a new tab in the settings UI where the user can fill in information. Each ISettings implementation has a scope, which can be "global", "website" or "user". If the scope is "global", it will be shown in the global settings dialog in Veva. If the scope is "website", it will be shown under the website settings in the website UI in Veva, where each website has it's own set of configuration values. If the scope is "user", then it will be shown under the user profile UI in Veva, where each user has it's own set of configuration values.
Each implementation has to return a name, which is usually just the type name of the class. The RequiresAppRecycle bool determines if the settings require the web application to be restarted after each change. If this is true, Veva will show a notification to the user that changing the settings will not be reflected until after a restart of the web application. Finally there's the scope as mentioned above.
Then you simply need to add public properties to the class, marked with the [EditorBrowsable] attribute. Those properties will be reflected and shown to the user.