public override object this[string name] { set { SiteProperty prop; var sitePropetiesCollection = GetSitePropertiesCollection(); if (sitePropetiesCollection.TryGetValueByName(name, out prop)) { // Check if it is a system var if (prop.Key == null) { throw (new ArgumentException("The site property '" + name + "' is a system property and cannot be changed.")); } if (prop.Value != value) { string databaseValue = prop.ChangeValue(value); HeContext heContext = AppInfo.GetAppInfo().OsContext; GenericExtendedActions.UpdateSiteProperty(heContext, prop.DefId, prop.IsShared, databaseValue); heContext.QueueEspaceToInvalidate(this.ESpaceId, prop.IsShared ? 0 : heContext.Session.TenantId); } } else { throw (new ArgumentException("The site property '" + name + "' does not exist.")); } } }