/// <summary>
        /// Returns the default configuration.
        /// </summary>
        /// <returns></returns>
        internal static EntityGateCoreConfig GetFirstConfig()
        {
            lock (locker)
            {
                EntityGateCoreConfig rslt = null;

                if (configs != null)
                {
                    rslt = configs.FirstOrDefault();
                }

                return(rslt);
            }
        }
        /// <summary>
        /// Returns the requested configuration.
        /// </summary>
        /// <param name="connectionName">Name of the connection.</param>
        /// <returns></returns>
        internal static EntityGateCoreConfig GetConfig(string connectionName)
        {
            lock (locker)
            {
                EntityGateCoreConfig rslt = null;

                if (configs != null)
                {
                    rslt = configs.FirstOrDefault(conf => conf.ConnectionName.EqualsIgnoreCase(connectionName));
                }

                return(rslt);
            }
        }
        /// <summary>
        /// Load the configuration.
        /// </summary>
        /// <param name="childNode">Node containing the configuration.</param>
        /// <param name="configProperties">The list of properties to look for.</param>
        /// <returns></returns>
        private static EntityGateCoreConfig LoadConfig(XmlNode childNode, PropertyInfo[] configProperties)
        {
            var config = new EntityGateCoreConfig();

            foreach (var prop in configProperties)
            {
                var value   = default(string);
                var colNode = childNode.SelectSingleNode(prop.Name);

                if (colNode != null)
                {
                    value = colNode.InnerText;
                }
                else
                {
                    var xmlNode = childNode.Attributes.GetNamedItem(prop.Name);
                    value = xmlNode?.InnerText;
                }

                prop.SetValue(config, value, null);
            }

            return(config);
        }