Exemplo n.º 1
0
        private static bool OpensSuccessfully(SupportedSyntax currentSyntax, ConnectionStringSettings setting, out string errorMessage)
        {
            errorMessage = null;

            switch (currentSyntax)
            {
            case SupportedSyntax.MySql:
                return(TryConnection(setting.Name, () => new MySqlConnection(setting.ConnectionString), out errorMessage));

            case SupportedSyntax.SqlServer:
                return(TryConnection(setting.Name, () => new SqlConnection(setting.ConnectionString), out errorMessage));
            }

            return(false);
        }
Exemplo n.º 2
0
        public static ScriptManager FromFile(string fileName, SupportedSyntax?syntax = null)
        {
            var assembly = Assembly.LoadFile(fileName);

            DefaultSqlSyntaxAttribute defaultSyntax;
            SupportedSyntax           currentSyntax = syntax ??
                                                      ((assembly.HasAttribute(out defaultSyntax)) ? defaultSyntax.Syntax :
                                                       throw new ArgumentException("Could not determine the SQL syntax. Please specify the SupportedSyntax argument or use the [DefaultSqlSyntaxAttribute] on the assembly."));

            var result = new ScriptManager();

            result.Assembly      = assembly;
            result.Configuration = ConfigurationManager.OpenExeConfiguration(assembly.Location);
            result.CurrentSyntax = currentSyntax;

            List <string> connectionNames = new List <string>();

            foreach (ConnectionStringSettings connectionStr in result.Configuration.ConnectionStrings.ConnectionStrings)
            {
                if (!IsLocalConfigElement(connectionStr, result.Configuration.FilePath))
                {
                    continue;
                }

                string errorMessage = null;
                if (ConnectionProviders[currentSyntax].ProviderNames.Contains(connectionStr.ProviderName) ||
                    OpensSuccessfully(currentSyntax, connectionStr, out errorMessage))
                {
                    connectionNames.Add(connectionStr.Name);
                }

                if (!string.IsNullOrEmpty(errorMessage))
                {
                    if (result.ConnectionErrors == null)
                    {
                        result.ConnectionErrors = new StringBuilder();
                    }
                    result.ConnectionErrors.AppendLine(errorMessage);
                    result.ConnectionErrors.AppendLine();
                }
            }
            result.ConnectionNames = connectionNames.ToArray();

            return(result);
        }
Exemplo n.º 3
0
        private static void Main(string[] args)
        {
            try
            {
                if (args.Length == 0)
                {
                    throw new InvalidOperationException("MergeModel requires an assembly file name argument.");
                }

                string folder;
                string fileNameBase;
                string modelClassAssembly = FindModelAssembly(args, out folder, out fileNameBase);
                string connectionName     = FindConnectionName(args);
                Action action             = FindAction(args);

                Assembly assembly = Assembly.LoadFile(modelClassAssembly);
                var      config   = ConfigurationManager.OpenExeConfiguration(assembly.Location);

                DefaultSqlSyntaxAttribute syntaxAttr;
                SupportedSyntax           syntaxValue = (assembly.HasAttribute(out syntaxAttr)) ? syntaxAttr.Syntax : FindSyntax(args);

                switch (syntaxValue)
                {
                case SupportedSyntax.MySql:
                    RunMerge <MySqlDb <int>, MySqlSyntax>(assembly, new MySqlDb <int>(config, connectionName), action);
                    break;

                case SupportedSyntax.SqlServer:
                    RunMerge <SqlServerDb <int>, SqlServerSyntax>(assembly, new SqlServerDb <int>(config, connectionName), action);
                    break;
                }
            }
            catch (Exception exc)
            {
                Console.WriteLine(exc.Message);
            }
            Console.ReadLine();
        }
 public DefaultSqlSyntaxAttribute(SupportedSyntax syntax)
 {
     _syntax = syntax;
 }