AdvantageCMS.Core.Common.BaseClasses Namespace
Build With Advantage

BusinessObjectSiteSetting<(Of <(<'T>)>)> Class

Base class for domain-level site settings. Restricts objects to the current domain and provides common site-wide configuration properties (Google Analytics, social shares, etc.). Implements the BusinessObject<(Of <(<'T>)>)>

Namespace:  AdvantageCMS.Core.Admin.BaseClasses
Assembly:  AdvantageCMS.Core (in AdvantageCMS.Core.dll)

Syntax


[SerializableAttribute]
public class BusinessObjectSiteSetting<T> : BusinessObject<T>
where T : BusinessObject<T>

Type Parameters

T
The concrete site setting type that derives from this class.

Examples


Create a domain-level site settings class for a tenant. Use this base class for domain-scoped configuration only; never store agent-specific config here.
C#
[Serializable]
public class MySiteSettings : BusinessObjectSiteSetting<MySiteSettings>
{
    public virtual string SupportEmail { get; set; }
    public virtual string DefaultTheme { get; set; }
    public virtual bool MaintenanceMode { get; set; }

    protected override void SetSearchableProperties()
    {
        AddSearchableProperty("SupportEmail", SupportEmail);
    }

    protected override void SetSummaryDataRow()
    {
        AddSummaryDataRow("SupportEmail", SupportEmail ?? "N/A");
        AddSummaryDataRow("DefaultTheme", DefaultTheme ?? "N/A");
    }

    protected override bool ValidateObject()
    {
        if (string.IsNullOrEmpty(SupportEmail))
        {
            AddValidationError("SupportEmail is required.");
            return false;
        }
        return true;
    }
}

Inheritance Hierarchy


Object
  AdvantageCMS.Core.Admin.BaseClasses..::..BusinessObjectBase
    AdvantageCMS.Core.Admin.BaseClasses..::..BusinessObject<(Of <(<'T>)>)>
      AdvantageCMS.Core.Admin.BaseClasses..::..BusinessObjectSiteSetting<(Of <(<'T>)>)>