Exemplo n.º 1
0
 public Generator(ContextDefinition definition, IEnumerable <ContextType> types, IEnumerable <ContextFunction> functions,
                  bool functionsOnly)
 {
     _definition    = definition;
     _types         = types;
     _functions     = functions;
     _functionsOnly = functionsOnly;
 }
 public Generator(ContextDefinition definition, IEnumerable<ContextType> types, IEnumerable<ContextFunction> functions,
     bool functionsOnly)
 {
     _definition = definition;
     _types = types;
     _functions = functions;
     _functionsOnly = functionsOnly;
 }
        static void Main(string[] args)
        {
            if (args.Length < 2)
            {
                throw new ApplicationException("You must supply a dbml file and an output file as parameters.");
            }

            string dbmlFile   = args[0];
            string outputFile = args[1];

            bool functionsOnly = (args.Length > 2 && args[2].ToLower() == "functionsonly");
            bool visualBasic   = (args.Length == 3 && args[2].ToLower() == "vb") || (args.Length == 4 && args[3].ToLower() == "vb");

            if (!File.Exists(dbmlFile))
            {
                throw new ApplicationException("Invalid dbml file specified.");
            }

            ContextDefinition definition = ReadDefinitionFromFile(dbmlFile);

            IList <ContextType> types = ReadTypesFromFile(dbmlFile);

            IList <ContextFunction> functions = ReadFunctionsFromFile(dbmlFile);

            IGenerator generator;

            if (!visualBasic)
            {
                generator = new Generator(definition, types, functions, functionsOnly);
            }
            else
            {
                generator = new VisualBasicGenerator(definition, types, functions, functionsOnly);
            }

            bool foundFile = false;

            FileAttributes savedAttrs = FileAttributes.Normal;

            if (File.Exists(outputFile))
            {
                savedAttrs = File.GetAttributes(outputFile);
                File.SetAttributes(outputFile, FileAttributes.Normal);
                foundFile = true;
            }

            generator.GenerateContext(outputFile);
            Console.WriteLine(outputFile + " written.");

            if (foundFile)
            {
                File.SetAttributes(outputFile, savedAttrs);
            }
        }