public static ChoBaseConfigurationMetaDataInfo GetMetaDataSection(ChoBaseConfigurationElement configElement) { if (configElement == null) { return(null); } Type configurationMetaDataType = configElement.ConfigurationMetaDataType; string configElementPath = configElement.ConfigElementPath; XmlNode node = null; if (_rootNode != null && !configElementPath.IsNullOrWhiteSpace()) { node = _rootNode.SelectSingleNode(@"//{0}".FormatString(configElementPath)); } if (node != null) { XmlAttributeOverrides overrides = new XmlAttributeOverrides(); XmlAttributes attr = new XmlAttributes(); attr.XmlRoot = new XmlRootAttribute(node.Name); overrides.Add(configurationMetaDataType, attr); ChoBaseConfigurationMetaDataInfo metaDataInfo = node.ToObject(configurationMetaDataType, overrides) as ChoBaseConfigurationMetaDataInfo; return(metaDataInfo); } //configElement.ForcePersist(true); return(null); }
public override bool Equals(ChoBaseConfigurationMetaDataInfo obj) { if (object.ReferenceEquals(obj, null)) { return(false); } if (!(obj is ChoStandardConfigurationMetaDataInfo)) { return(false); } if (!base.Equals(obj)) { return(false); } ChoStandardConfigurationMetaDataInfo other = obj as ChoStandardConfigurationMetaDataInfo; if (other != null) { if (BindingMode != other.BindingMode) { return(false); } if (Defaultable != other.Defaultable) { return(false); } if (IgnoreCase != other.IgnoreCase) { return(false); } if (Silent != other.Silent) { return(false); } if (Parameters != other.Parameters) { return(false); } if (ConfigFilePath != other.ConfigFilePath) { return(false); } if (!ChoObject.Equals <ChoConfigurationMetaDataLogInfo>(ConfigurationMetaDataLogInfo, other.ConfigurationMetaDataLogInfo)) { return(false); } } return(true); }
public override void Merge(ChoBaseConfigurationMetaDataInfo source) { base.Merge(source); ChoStandardConfigurationMetaDataInfo other = source as ChoStandardConfigurationMetaDataInfo; if (other != null) { ConfigurationMetaDataLogInfo = ChoObject.Merge(ConfigurationMetaDataLogInfo, other.ConfigurationMetaDataLogInfo); } }
internal static bool IsMetaDataModified(ChoBaseConfigurationElement configElement) { if (configElement == null) { return(false); } ChoBaseConfigurationMetaDataInfo newConfigurationMetaDataInfo = GetMetaDataSection(configElement); return(!ChoObject.Equals <ChoBaseConfigurationMetaDataInfo>(newConfigurationMetaDataInfo, configElement.MetaDataInfo)); }
private void InvokeOverrideConfigurationMetaDataInfo(ChoBaseConfigurationElement configElement) { ChoBaseConfigurationMetaDataInfo standardConfigurationMetaDataInfo = configElement.MetaDataInfo; Type type = configElement.ConfigbObjectType; if (standardConfigurationMetaDataInfo == null || type == null) { return; } if (configElement.ConfigObject is ChoConfigurableObject) { ((ChoConfigurableObject)configElement.ConfigObject).InvokeOverrideMetaDataInfo(standardConfigurationMetaDataInfo); } }
public static void SetMetaDataSection(ChoBaseConfigurationElement configElement) { if (configElement == null) { return; } if (ChoObject.Equals <ChoBaseConfigurationMetaDataInfo>(configElement.MetaDataInfo, GetMetaDataSection(configElement))) { return; } string configElementPath = configElement.ConfigElementPath; ChoBaseConfigurationMetaDataInfo configurationMetaDataInfo = configElement.MetaDataInfo; configurationMetaDataInfo = ChoObject.Merge <ChoBaseConfigurationMetaDataInfo>(configurationMetaDataInfo, GetDefaultMetaDataInfo(configElement)); if (configurationMetaDataInfo == null) { return; } using (ChoXmlDocument xmlDocument = new ChoXmlDocument(_metaDataFilepath)) { if (configElementPath.IsNullOrEmpty()) { return; } XmlNode node = xmlDocument.XmlDocument.SelectSingleNode(configElementPath); if (node == null) { node = xmlDocument.XmlDocument.MakeXPath(configElementPath); } if (node != null) { ChoXmlDocument.SetOuterXml(node, configurationMetaDataInfo.ToXml()); xmlDocument.XmlDocument.InnerXml = ChoXmlDocument.AppendToInnerXml(node, GetPropertyInfos(configElement).ToXml()); xmlDocument.Save(); } } }
protected override void ApplyConfigMetaData(ChoBaseConfigurationMetaDataInfo configurationMetaDataInfo) { if (configurationMetaDataInfo == null || !(configurationMetaDataInfo is ChoStandardConfigurationMetaDataInfo)) { return; } ChoStandardConfigurationMetaDataInfo standardConfigurationMetaDataInfo = configurationMetaDataInfo as ChoStandardConfigurationMetaDataInfo; BindingMode = standardConfigurationMetaDataInfo.BindingMode; Silent = standardConfigurationMetaDataInfo.Silent; Defaultable = standardConfigurationMetaDataInfo.Defaultable; IgnoreCase = standardConfigurationMetaDataInfo.IgnoreCase; if (standardConfigurationMetaDataInfo.ConfigurationMetaDataLogInfo != null) { LogCondition = standardConfigurationMetaDataInfo.ConfigurationMetaDataLogInfo.LogCondition; LogTimeStampFormat = standardConfigurationMetaDataInfo.ConfigurationMetaDataLogInfo.LogTimeStampFormat; LogDirectory = standardConfigurationMetaDataInfo.ConfigurationMetaDataLogInfo.LogDirectory; LogFileName = standardConfigurationMetaDataInfo.ConfigurationMetaDataLogInfo.LogFileName; } }
private ChoBaseConfigurationMetaDataInfo InitDefaultMetaDataInfo(ChoBaseConfigurationElement configElement) { ChoBaseConfigurationMetaDataInfo defaultMetaDataInfo = ChoConfigurationMetaDataManager.GetDefaultMetaDataInfo(configElement); if (defaultMetaDataInfo.ConfigStorageType.IsNullOrEmpty()) { if (DefaultConfigStorage != null) { defaultMetaDataInfo.ConfigStorageType = DefaultConfigStorage.GetType().AssemblyQualifiedName; } else { IChoConfigStorage configStorage = ChoConfigStorageManagerSettings.Me.GetDefaultConfigStorage(); if (configStorage != null) { defaultMetaDataInfo.ConfigStorageType = configStorage.GetType().AssemblyQualifiedName; } } } return(defaultMetaDataInfo); }
protected abstract void ApplyConfigMetaData(ChoBaseConfigurationMetaDataInfo configurationMetaDataInfo);
protected virtual void OverrideMetaDataInfo(ChoBaseConfigurationMetaDataInfo metaDataInfo) { }
internal void InvokeOverrideMetaDataInfo(ChoBaseConfigurationMetaDataInfo metaDataInfo) { OverrideMetaDataInfo(metaDataInfo); }
public ChoConfigSection(Type configObjectType, XmlNode node, XmlNode[] contextNodes, ChoBaseConfigurationElement configElement) : this() { _configElement = configElement; if (configElement != null) { //Get and Set MetaDataFileName configElement.ConfigurationMetaDataType = ConfigurationMetaDataType; IChoConfigStorage attrDefinedConfigStorage = configElement.MetaDataInfo != null ? configElement.MetaDataInfo.ConfigStorage : null; ChoBaseConfigurationMetaDataInfo defaultMetaDataInfo = InitDefaultMetaDataInfo(configElement); configElement.MetaDataInfo = ChoObject.Merge <ChoBaseConfigurationMetaDataInfo>(ChoConfigurationMetaDataManager.GetMetaDataSection(configElement), defaultMetaDataInfo); ConfigStorage = configElement.MetaDataInfo != null && configElement.MetaDataInfo.ConfigStorage != null ? configElement.MetaDataInfo.ConfigStorage : attrDefinedConfigStorage; if (ConfigStorage == null) { configElement.Log("Missing configuration storage, assigning to configSection default storage."); ConfigStorage = DefaultConfigStorage; if (ConfigStorage == null) { configElement.Log("Missing configuration storage, assigning to system default storage."); ConfigStorage = ChoConfigStorageManagerSettings.Me.GetDefaultConfigStorage(); } } if (ConfigStorage != null) { try { CheckValidConfigStoragePassed(ConfigStorage); } catch (ChoFatalApplicationException) { throw; } catch (Exception ex) { if (configElement.Silent) { ConfigElement.Log(ex.Message); ConfigStorage = ChoConfigStorageManagerSettings.Me.GetDefaultConfigStorage(); if (ConfigStorage != null) { ConfigElement.Log("Using default [{0}] config storage.".FormatString(ConfigStorage.GetType().FullName)); } } else { throw; } } } if (ConfigStorage == null) { throw new ChoConfigurationException("Missing configuration storage."); } IsMetaDataDefinitionChanged = !ChoObject.Equals <ChoBaseConfigurationMetaDataInfo>(ChoConfigurationMetaDataManager.GetMetaDataSection(configElement), defaultMetaDataInfo); configElement.MetaDataInfo.ConfigStorage = ConfigStorage; try { ConfigData = ConfigStorage.Load(_configElement, node); } catch (ChoFatalApplicationException) { throw; } catch (Exception ex) { _configLoadExceptions.Add(ex); } } //if (ConfigStorage == null) //{ // try // { // ConfigStorage = DefaultConfigStorage; // if (ConfigStorage == null) // ConfigStorage = ChoConfigStorageManagerSettings.Me.GetDefaultConfigStorage(); // } // catch (Exception ex) // { // _configLoadExceptions.Add(ex); // } //} try { ConfigurationChangeWatcher = ConfigStorage.ConfigurationChangeWatcher; if (ConfigurationChangeWatcher != null) { ConfigurationChangeWatcher.StartWatching(); } } catch (Exception ex) { _configLoadExceptions.Add(ex); } }