示例#1
0
        private static void Run(CommandLineOptions options)
        {
            try
            {
                var looParser  = new LooParser();
                var xlsxParser = new XlsxParser();
                switch (options.File)
                {
                case var xlsxFile when Path.GetExtension(options.File)
                    .Equals(XlsxExtension, StringComparison.CurrentCultureIgnoreCase)
                    :     //if xlsxl file -> convert to loo
                    foreach (var language in Enum.GetValues(typeof(ParserLanguage)).Cast <ParserLanguage>())
                    {
                        Console.WriteLine($"Preparing loo file for {language} language.");
                        var xlsxLines = xlsxParser.LoadXlsFile(xlsxFile, options.FormatFile, language);

                        Console.WriteLine($"{xlsxLines.Count} keys found for {language} language.");
                        var looFilename  = options.CreateLanguageFiles ? $"locdirect_{language.ToString().ToLower()}{LooExtension}" : $"{((ParserLanguageShort) language).ToString().ToLower()}\\locdirect_english{LooExtension}";
                        var looDirectory = Path.GetDirectoryName(looFilename);

                        if (!string.IsNullOrWhiteSpace(looDirectory) && !Directory.Exists(looDirectory))
                        {
                            Directory.CreateDirectory(looDirectory);
                        }
                        looParser.SaveLooFile(xlsxLines, looFilename);
                        Console.WriteLine($"Saved {looFilename} for {language} language.");
                    }

                    break;

                case var looFile when Path.GetExtension(options.File)
                    .Equals(LooExtension, StringComparison.CurrentCultureIgnoreCase)
                    :     //if loo file -> convert to xlsx
                    Console.WriteLine("Converting .loo file to .xslx");

                    var looLines     = looParser.LoadLooFile(looFile);
                    var xlsxFilename = Path.GetFileNameWithoutExtension(looFile) + XlsxExtension;
                    xlsxParser.SaveXlsFile(looLines, xlsxFilename);
                    Console.WriteLine($"Saved {xlsxFilename}.");
                    break;

                default:
                    Console.WriteLine("Invalid file type supplied. Only .loo and .xlsx are valid.");
                    break;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("An error occured: {0}", e);
            }
        }
示例#2
0
        private static void Main(string[] args)
        {
            try
            {
                if (args.Length <= 1) //If no file was supplied exit.
                {
                    PrintHelp();
                }
                else
                {
                    var file       = args[0];
                    var codePage   = int.Parse(args[1]);
                    var looParser  = new LooParser();
                    var xlsxParser = new XlsxParser();
                    switch (file)
                    {
                    case var xlsxFile when Path.GetExtension(file)
                        .Equals(XlsxExtension, StringComparison.CurrentCultureIgnoreCase)
                        : //if xlsxl file -> convert to loo
                        var xlsxLines = xlsxParser.LoadXlsFile(xlsxFile, args.Length > 1 ? args[2] : null);

                        looParser.SaveLooFile(xlsxLines, Path.GetFileNameWithoutExtension(xlsxFile) + LooExtension,
                                              codePage);
                        break;

                    case var looFile when Path.GetExtension(file)
                        .Equals(LooExtension, StringComparison.CurrentCultureIgnoreCase)
                        : //if loo file -> convert to xlsx
                        var looLines = looParser.LoadLooFile(looFile, codePage);

                        xlsxParser.SaveXlsFile(looLines, Path.GetFileNameWithoutExtension(looFile) + XlsxExtension);
                        break;

                    default:
                        PrintHelp();
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                PrintHelp();
                throw e;
            }
        }