예제 #1
0
        public static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;
            Console.WriteLine("BuildData");
            Console.WriteLine();
            Console.WriteLine("*** Command Line Arguments ***");
            foreach (var arg in args)
            {
                Console.WriteLine(arg);
            }
            Console.WriteLine("*** Command Line Arguments ***");

            Console.WriteLine("CurrentDirectory: " + Environment.CurrentDirectory);

            string configFile = null;

            Dictionary <string, string> argDic = CommandLineArgsToDictionary(args);

            if (argDic.ContainsKey("-config"))
            {
                configFile = argDic["-config"];
                if (configFile != null)
                {
                    configFile = configFile.Trim();
                }
            }

            BuildDataConfig config = BuildDataUtility.LoadConfigFromFile(configFile);

            try
            {
                BuildOptions options = new BuildOptions()
                {
                    config = config
                };

                if (argDic.ContainsKey("-code"))
                {
                    options.buildCode = true;
                }
                if (argDic.ContainsKey("-data"))
                {
                    options.buildData = true;
                }
                BuildDataUtility.Build(options);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
                throw ex;
            }
        }
        public override void Write(DataTableInfo tableInfo)
        {
            Type objType;

            objType = Reader.DataTableInfoToType(tableInfo);

            sb.Clear();
            var objs = Reader.LoadDataObjects(tableInfo.Name, objType).ToArray();

            serializer.Serialize(objs, sb);
            string outputFile = Path.Combine(OutputDir, tableInfo.Name + ".json");

            File.WriteAllText(outputFile, sb.ToString(), new UTF8Encoding(false));
            Console.WriteLine($"output {BuildDataUtility.ToRelativePath(outputFile, OutputDir)}. table <{tableInfo.Name}> type <{objType.FullName}> data length <{objs.Length}>");
        }
예제 #3
0
        private static void BuildData(BuildOptions options, DataReader reader)
        {
            Console.WriteLine();
            Console.WriteLine("*** Build Data Begin ***");
            DateTime startTime = DateTime.Now;

            Console.WriteLine($"output directory: {BuildDataUtility.ToRelativePath(reader.Config.Output.Path, ".")}");
            Type writerType = GetDataWriterType(reader.Config);

            using (var writer = (DataWriter)Activator.CreateInstance(writerType))
            {
                writer.LoadConfig(reader.Config);
                writer.Open(reader);

                writer.WriteAll();
            }
            var usedTime = (DateTime.Now - startTime).TotalSeconds;

            Console.WriteLine("*** Build Data End. time:{0:0.#}s ***", usedTime);
        }