Exemplo n.º 1
0
        static int Main(string[] args)
        {
            Console.WriteLine("TypeForwarding Assembly generator");
            Console.WriteLine("Copyright (c) Karim Audrey Luccin");

            if (args == null || args.Length < 2)
            {
                Console.WriteLine("Invalid argument counts");
                return Usage();
            }
            else
            {
                try
                {
                    var dest_file = args[0];

                    var assemblyNames = new string[args.Length - 1];

                    for (int i = 1; i < args.Length; i++)
                        assemblyNames[i-1] = args[i];

                    var generator = new ForwardGenerator();
                    generator.Generate(dest_file, assemblyNames);

                    return 0;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    return 2;
                }
            }
        }
Exemplo n.º 2
0
        public string[] Generate(string databaseName)
        {
            var newGenes = GetEvolutionHistory(databaseName);
            var ahead    = _evolutionHistory.Subtract(newGenes);

            if (ahead.Any)
            {
                throw new InvalidOperationException(
                          "The target database is ahead of the desired genome. Execute \"Evolve-Database -Force\" or call \"DevolveDatabase()\" on the DatabaseEvolver to roll back, which may destroy data.");
            }
            var difference = newGenes.Subtract(_evolutionHistory);

            var generator = new ForwardGenerator(databaseName, difference);

            while (generator.Any)
            {
                generator.AddGene(generator.Head);
            }

            return(generator.Sql.ToArray());
        }
        public string[] Generate(string databaseName)
        {
            var newMigrations = GetMigrationHistory(databaseName);
            var ahead         = _migrationHistory.Subtract(newMigrations);

            if (ahead.Any)
            {
                throw new InvalidOperationException(
                          "The target database is ahead of the desired migration. You can force a rollback, which may destroy data.");
            }
            var difference = newMigrations.Subtract(_migrationHistory);

            var generator = new ForwardGenerator(databaseName, difference);

            while (generator.Any)
            {
                generator.AddMigration(generator.Head);
            }

            return(generator.Sql.ToArray());
        }