/// <summary>
        /// Initializes the connection.
        /// </summary>
        /// <param name="connectionName">Name of the connection.</param>
        /// <param name="dataProvider">The data provider.</param>
        /// <returns></returns>
        public static ImageOptimizationEFDataConnection InitializeConnection(string connectionName, IImageOptimizationEFDataProvider dataProvider)
        {
            IConnectionStringSettings connectionSettings = ImageOptimizationEFDataConnection.GetConnectionStringSettings(connectionName);

            ImageOptimizationEFDataConnection connection;
            if (!ImageOptimizationEFDataConnection.connections.TryGetValue(connectionSettings.Name, out connection))
            {
                lock (ImageOptimizationEFDataConnection.connectionsLock)
                {
                    if (!ImageOptimizationEFDataConnection.connections.TryGetValue(connectionSettings.Name, out connection))
                    {
                        connection = new ImageOptimizationEFDataConnection(connectionSettings.Name, connectionSettings.ConnectionString, dataProvider);
                        ImageOptimizationEFDataConnection.connections.Add(connectionSettings.Name, connection);
                    }
                }
            }
            return connection;
        }
        /// <summary>
        /// Initializes the connection.
        /// </summary>
        /// <param name="connectionName">Name of the connection.</param>
        /// <param name="dataProvider">The data provider.</param>
        /// <returns></returns>
        public static ImageOptimizationEFDataConnection InitializeConnection(string connectionName, IImageOptimizationEFDataProvider dataProvider)
        {
            IConnectionStringSettings connectionSettings = ImageOptimizationEFDataConnection.GetConnectionStringSettings(connectionName);

            ImageOptimizationEFDataConnection connection;

            if (!ImageOptimizationEFDataConnection.connections.TryGetValue(connectionSettings.Name, out connection))
            {
                lock (ImageOptimizationEFDataConnection.connectionsLock)
                {
                    if (!ImageOptimizationEFDataConnection.connections.TryGetValue(connectionSettings.Name, out connection))
                    {
                        connection = new ImageOptimizationEFDataConnection(connectionSettings.Name, connectionSettings.ConnectionString, dataProvider);
                        ImageOptimizationEFDataConnection.connections.Add(connectionSettings.Name, connection);
                    }
                }
            }
            return(connection);
        }