Generating Code for Tenants Table

Launch Sergen and generate code for Tenants table in Default connection:

Tenants Table

Next we’ll define a lookup script in TenantRow and set DisplayName property to Tenants:

  1. namespace MultiTenancy.Administration.Entities
  2. {
  3. //...
  4. [ConnectionKey("Default"), DisplayName("Tenants"),
  5. InstanceName("Tenant"), TwoLevelCached]
  6. [LookupScript("Administration.Tenant")]
  7. public sealed class TenantRow : Row, IIdRow, INameRow
  8. {
  9. [DisplayName("Tenant Id"), Identity]
  10. public Int32? TenantId
  11. {
  12. get { return Fields.TenantId[this]; }
  13. set { Fields.TenantId[this] = value; }
  14. }
  15. //...

Let’s define a Administration:Tenants permission that only admin user will have (in AdministrationPermissionKeys.cs):

  1. namespace MultiTenancy.Administration
  2. {
  3. public class PermissionKeys
  4. {
  5. public const string Security = "Administration:Security";
  6. public const string Translation = "Administration:Translation";
  7. public const string Tenants = "Administration:Tenants";
  8. }
  9. }

And use it on TenantRow:

  1. [ConnectionKey("Default"), DisplayNahme("Tenants"),
  2. InstanceName("Tenant"), TwoLevelCached]
  3. [ReadPermission(PermissionKeys.Tenants)]
  4. [ModifyPermission(PermissionKeys.Tenants)]
  5. [LookupScript("Administration.Tenant")]
  6. public sealed class TenantRow : Row, IIdRow, INameRow
  7. {