예제 #1
0
        static void Main(string[] args)
        {
            InputParameters parameters = null;

            if (args.Length >= 1 && string.Equals(args[0], "--CreateSettingsFile"
                                                  , StringComparison.OrdinalIgnoreCase))
            {
                InputParametersWorker.CreateSettingsFile(args);
                return;
            }
            else if (args.Length == 3 && string.Equals(args[0], "--CreateSqlFile"
                                                       , StringComparison.OrdinalIgnoreCase))
            {
                parameters = InputParametersWorker.ReadSettingsFile(args[1]);
                var sheet = SheetRetriever.Get(parameters.SourceFileName,
                                               parameters.WorksheetName);
                var reader    = new SourceReader(sheet, parameters);
                var sql_lines = SqlFileCreator.MakeFileForLugbulkDatabase(reader);
                File.WriteAllLines(args[2], sql_lines);
                return;
            }
            else if (args.Length == 4 && string.Equals(args[0], "--UseLists"
                                                       , StringComparison.OrdinalIgnoreCase))
            {
                var orders   = File.ReadAllLines(args[1]).ToList();
                var elements = File.ReadAllLines(args[2]).ToList();

                var reader = new CsvFileSourceReader(orders, elements);

                ExcelCreator.CreateAllExcelFiles(reader, args[3]);

                return;
            }
            else if (args.Length == 1 && File.Exists(args[0]))
            {
                parameters = InputParametersWorker.ReadSettingsFile(args[0]);
            }
            else if (args.Length == 9)
            {
                parameters = InputParametersWorker.
                             GetInputParametersFromArguments(args);
            }

            if (parameters != null)
            {
                string validation_message = "";
                if (!InputParametersWorker.ValidateParameters
                        (parameters, out validation_message))
                {
                    Console.WriteLine(validation_message);
                    return;
                }

                var sheet = SheetRetriever.Get(parameters.SourceFileName,
                                               parameters.WorksheetName);

                var reader = new SourceReader(sheet, parameters);

                ExcelCreator.CreateAllExcelFiles(reader, parameters.OutputFolder);

                return;
            }

            Console.WriteLine("Commands: ");
            Console.WriteLine("");
            Console.WriteLine("ListMakerTwo.exe <Source File Name> <Sheet Name> " +
                              "<ElementId Span> <Buyers Span> <BrickLink Description Span> " +
                              "<BrickLinkId Span> <BrickLink Color Span> <TLG Color Span>" +
                              "<output folder>");
            Console.WriteLine("");
            Console.WriteLine("ListMakerTwo.exe <settings file>");
            Console.WriteLine("");
            Console.WriteLine("ListMakerTwo.exe --CreateSettingsFile [Optional settings file name]");
            Console.WriteLine("(Default file name will be base_settings.txt)");
            Console.WriteLine("");
            Console.WriteLine("ListMakerTwo.exe --CreateSqlFile <settings file> <output file>");
            Console.WriteLine("");
            Console.WriteLine("ListMakerTwo.exe --UseLists <orders data file> <element data file> <output folder>");
        }
        public static bool ValidateParameters(InputParameters parameters, out string validation_message)
        {
            validation_message = "Parameters OK!";

            if (string.IsNullOrEmpty(parameters.SourceFileName))
            {
                validation_message = "SourceFileName not set!";
                return(false);
            }

            if (!File.Exists(parameters.SourceFileName))
            {
                validation_message = "Source file not found!";
                return(false);
            }

            XLWorkbook workbook = null;

            try
            {
                workbook = new XLWorkbook(parameters.SourceFileName);
            }
            catch (Exception ex)
            {
                validation_message = "Failed to open file set in SourceFileName: "
                                     + ex.Message;
                return(false);
            }

            if (workbook == null)
            {
                validation_message = "Failed to open file defined in SourceFileName.";
                return(false);
            }

            if (string.IsNullOrEmpty(parameters.WorksheetName))
            {
                validation_message = "WorksheetName not set!";
                return(false);
            }

            if (!workbook.Worksheets.Any(x => x.Name == parameters.WorksheetName))
            {
                validation_message = "Failed to find sheet defined in WorksheetName.";
                return(false);
            }

            var sheet = workbook.Worksheets.First(x =>
                                                  x.Name == parameters.WorksheetName);

            if (sheet == null)
            {
                validation_message = "Failed to open sheet defined in WorksheetName.";
                return(false);
            }


            if (string.IsNullOrEmpty(parameters.BuyersSpan))
            {
                validation_message = "BuyersSpan not set!";
                return(false);
            }
            if (!ValidateSpanParameter(sheet, parameters.BuyersSpan))
            {
                validation_message = "Failed to retrieve span defined in BuyersSpan.";
                return(false);
            }

            if (string.IsNullOrEmpty(parameters.ElementIdSpan))
            {
                validation_message = "ElementIdSpan not set!";
                return(false);
            }
            if (!ValidateSpanParameter(sheet, parameters.ElementIdSpan))
            {
                validation_message = "Failed to retrieve span defined in ElementIdSpan.";
                return(false);
            }

            if (string.IsNullOrEmpty(parameters.BrickLinkDescriptionSpan))
            {
                validation_message = "BrickLinkDescriptionSpan not set!";
                return(false);
            }
            if (!ValidateSpanParameter(sheet, parameters.BrickLinkDescriptionSpan))
            {
                validation_message = "Failed to retrieve span defined in BrickLinkDescriptionSpan.";
                return(false);
            }

            if (string.IsNullOrEmpty(parameters.BrickLinkIdSpan))
            {
                validation_message = "BrickLinkIdSpan not set!";
                return(false);
            }
            if (!ValidateSpanParameter(sheet, parameters.BrickLinkIdSpan))
            {
                validation_message = "Failed to retrieve span defined in BrickLinkIdSpan.";
                return(false);
            }

            if (string.IsNullOrEmpty(parameters.BrickLinkColorSpan))
            {
                validation_message = "BrickLinkColorSpan not set!";
                return(false);
            }
            if (!ValidateSpanParameter(sheet, parameters.BrickLinkColorSpan))
            {
                validation_message = "Failed to retrieve span defined in BrickLinkColorSpan.";
                return(false);
            }

            if (string.IsNullOrEmpty(parameters.TlgColorSpan))
            {
                validation_message = "TlgColorSpan not set!";
                return(false);
            }
            if (!ValidateSpanParameter(sheet, parameters.TlgColorSpan))
            {
                validation_message = "Failed to retrieve span defined in TlgColorSpan.";
                return(false);
            }

            if (string.IsNullOrEmpty(parameters.OutputFolder))
            {
                validation_message = "SourceFileName not set!";
                return(false);
            }

            if (!Directory.Exists(parameters.OutputFolder))
            {
                validation_message = "Output folder not found!";
                return(false);
            }

            return(true);
        }