public void RestoreData()
        {
            var xmlSerializer = new XmlSerializer();

            foreach (ConnectionInfo connection in _connections)
            {
                if (connection.ConnectionDescriptor == null)
                {
                    continue;
                }

                if (!connection.IsXmlFile)
                {
                    connection.ConnectionDescriptor.ConnectionString = connection.ConnectionString;
                }

                if (!string.IsNullOrEmpty(connection.LoadingOptions))
                {
                    xmlSerializer.Deserialize(connection.LoadingOptions,
                                              connection.ConnectionDescriptor.MetadataLoadingOptions);
                }

                if (!string.IsNullOrEmpty(connection.SyntaxProviderName) && connection.IsGenericConnection())
                {
                    connection.ConnectionDescriptor.SyntaxProvider =
                        ConnectionInfo.GetSyntaxByName(connection.SyntaxProviderName);
                }

                if (!string.IsNullOrEmpty(connection.SyntaxProviderState))
                {
                    if (!string.IsNullOrEmpty(connection.SyntaxProviderName))
                    {
                        connection.ConnectionDescriptor.SyntaxProvider =
                            ConnectionInfo.GetSyntaxByName(connection.SyntaxProviderName);
                    }

                    xmlSerializer.DeserializeObject(connection.SyntaxProviderState,
                                                    connection.ConnectionDescriptor.SyntaxProvider);
                    connection.ConnectionDescriptor.RecreateSyntaxProperties();
                }

                if (!string.IsNullOrEmpty(connection.StructureOptionsState))
                {
                    if (connection.StructureOptions == null)
                    {
                        connection.StructureOptions = new MetadataStructureOptions();
                    }

                    xmlSerializer.DeserializeObject(connection.StructureOptionsState, connection.StructureOptions);
                }
            }
        }
        public void RestoreData()
        {
            var xmlSerializer = new ActiveQueryBuilder.Core.Serialization.XmlSerializer();

            foreach (ConnectionInfo connection in _connections)
            {
                try
                {
                    if (connection.ConnectionDescriptor == null)
                    {
                        continue;
                    }

                    connection.ConnectionDescriptor.ConnectionString = connection.ConnectionString;

                    if (!string.IsNullOrEmpty(connection.LoadingOptions))
                    {
                        xmlSerializer.Deserialize(connection.LoadingOptions,
                                                  connection.ConnectionDescriptor.MetadataLoadingOptions);
                    }

                    if (!string.IsNullOrEmpty(connection.SyntaxProviderName) && connection.IsGenericConnection())
                    {
                        connection.ConnectionDescriptor.SyntaxProvider =
                            ConnectionInfo.GetSyntaxByName(connection.SyntaxProviderName);
                    }

                    if (!string.IsNullOrEmpty(connection.SyntaxProviderState))
                    {
                        if (!string.IsNullOrEmpty(connection.SyntaxProviderName))
                        {
                            connection.ConnectionDescriptor.SyntaxProvider =
                                ConnectionInfo.GetSyntaxByName(connection.SyntaxProviderName);
                        }

                        xmlSerializer.DeserializeObject(connection.SyntaxProviderState,
                                                        connection.ConnectionDescriptor.SyntaxProvider);
                        connection.ConnectionDescriptor.RecreateSyntaxProperties();
                    }
                }
                catch
                {
                    //ignore
                }
            }
        }