private static IReadOnlyDictionary<IConnectionStringIdentity, string> CreateConnectionStringMappings(ConnectionStringSettingsCollection configuration)
        {
            var available = configuration.Cast<ConnectionStringSettings>().ToDictionary(x => x.Name, x => x.ConnectionString);
            var known = new Dictionary<string, IConnectionStringIdentity>
                        {
                            { ConnectionStringName.Erm, ErmConnectionStringIdentity.Instance },
                            { ConnectionStringName.Facts, FactsConnectionStringIdentity.Instance },
                            { ConnectionStringName.CustomerIntelligence, CustomerIntelligenceConnectionStringIdentity.Instance },
                        };

            return available.Join(known, x => x.Key, x => x.Key, (x, y) => Tuple.Create(y.Value, x.Value)).ToDictionary(x => x.Item1, x => x.Item2);
        }