Skip to content

Setting Provider

Configuration system is a good way to configure the application on startup.

A setting is a name-value pair stored in a dynamic data source, generally in a database. Setting system is extensible and there are pre-built providers for a user, a tenant, global and default.

  • Do define <ModuleName>Consts at domain shared package.
public static class IdentityConsts
{
    public const string GroupName = "Identity";
}
  • Do define setting provider in the domain package.
  • Do define setting for each aggregate.
public override void Define(ISettingDefinitionContext context)
{
    context.Add(
       new SettingDefinition(
           name: IdentitySettings.Session.PreventConcurrentLogin,
           defaultValue: IdentityPreventConcurrentLoginBehaviour.Disabled.ToString(),
           displayName: L("Settings:PreventConcurrentLogin"),
           description: L("Settings:PreventConcurrentLoginDescription"),
           isVisibleToClients: true,
           isInherited: true,
           isEncrypted: false
        )
    );
}

private static LocalizableString L(string name)
{
    return LocalizableString.Create<IdentityResource>(name);
}