Esempio n. 1
0
    private static void ImportXls(
        IWin32Window owner, string filePath, NotebookManager manager, DatabaseSchema schema
        )
    {
        var input = WaitForm.Go(owner, "Import", "Reading workbook...", out var success, () =>
                                XlsInput.Load(filePath));

        if (!success)
        {
            return;
        }

        using ImportXlsForm f = new(input, manager, schema);
        f.ShowDialog(owner);
    }
        static void Main(string[] args)
        {
            try
            {
                if (args.Length == 0)
                {
                    return;
                }

                List <InputBase> inputs = new List <InputBase>();

                for (int i = 0; i < args.Length; i++)
                {
                    var filename = args[i];

                    var fileInfo = new FileInfo(filename);
                    var type     = GetInputType(fileInfo);
                    Console.WriteLine($"Converting {fileInfo.FullName}");
                    if (!File.Exists(filename) || type == InputType.none)
                    {
                        Console.WriteLine("No idea what to do with {0}... skipping", fileInfo.Name);
                        continue;
                    }

                    if (!CheckKillExcel(fileInfo))
                    {
                        Console.WriteLine("Can't convert with file open in Excel");
                        continue;
                    }

                    InputBase input = null;
                    switch (type)
                    {
                    case InputType.js:
                        input = new JsInput(fileInfo);
                        break;

                    case InputType.xls:
                        input = new XlsInput(fileInfo);
                        break;

                    case InputType.resx:
                        input = new ResxInput(fileInfo);
                        break;

                    case InputType.none:
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }

                    // Shouldn't happen but lets keep re-sharper happy
                    if (input == null)
                    {
                        Console.WriteLine("No idea what to do with {0}... skipping", fileInfo.Name);
                        continue;
                    }

                    inputs.Add(input);
                    var models = input.GetModels();
                    if (models.Count == 0)
                    {
                        continue;
                    }

                    switch (type)
                    {
                    case InputType.js:
                        new XlsOutput(fileInfo).Convert(models);
                        //new ResxOutput(fileInfo).Convert(models);
                        break;

                    case InputType.xls:
                        //new JsOutput(fileInfo).Convert(models);
                        //new ResxOutput(fileInfo).Convert(models);
                        break;

                    case InputType.resx:
                        new XlsOutput(fileInfo).Convert(models);
                        //new JsOutput(fileInfo).Convert(models);
                        break;

                    case InputType.none:
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }

                Console.WriteLine("Done");
                Console.ReadKey();
            }
            catch (Exception ex)
            {
                Console.Write(ex.ToString());
                Console.ReadKey();
            }
        }