Пример #1
0
        public int Execute(ICommandOption opt)
        {
            var option = (CommandOption)opt;

            using var repository = new LiteDbKeySwitchRepository(option.DatabasePath);
            var translator = new KeySwitchListListToJsonModelList
            {
                Formatted = true
            };

            var presenter  = new ISearchingPresenter.Console();
            var interactor = new SearchingInteractor(repository, translator, presenter);

            var input = new SearchingRequest(option.Developer, option.Product, option.Instrument);

            var response = interactor.Execute(input);

            if (StringHelper.IsNullOrTrimEmpty(option.OutputPath))
            {
                Console.Out.WriteLine($"{response.Text}");
            }
            else
            {
                File.WriteAllText(option.OutputPath, response.Text.Value, Encoding.UTF8);
                Console.Out.WriteLine($"Output json to {option.OutputPath}");
            }

            Console.Error.WriteLine($"{response.FoundCount} record(s) found");

            return(0);
        }
Пример #2
0
        public int Execute(ICommandOption opt)
        {
            var option = (CommandOption)opt;

            var info = new KeySwitchInfo(
                option.Developer,
                option.Product,
                option.Author,
                option.Description
                );

            using var repository = new LiteDbKeySwitchRepository(option.DatabasePath);
            using var translator = new XlsxImportingRepository(
                      new FilePath(option.InputPath),
                      new KeySwitchInfo(
                          option.Developer,
                          option.Product,
                          option.Author,
                          option.Description
                          )
                      );

            var presenter  = new IImportingXlsxPresenter.Console();
            var interactor = new ImportingXlsxInteractor(repository, translator, presenter);

            var input = new ImportingXlsxRequest();

            var response = interactor.Execute(input);

            OutputToJson(response.Imported, option);

            return(0);
        }
Пример #3
0
        public int Execute(ICommandOption opt)
        {
            var option = (CommandOption)opt;

            using var repository = new LiteDbKeySwitchRepository(option.DatabasePath);
            var translator = new KeySwitchListListToJsonModelList {
                Formatted = true
            };
            var presenter  = new IRemovingPresenter.Null();
            var interactor = new RemovingInteractor(repository, presenter);

            var input = new RemovingRequest(option.Developer, option.Product, option.Instrument);

            Console.WriteLine($"Developer=\"{option.Developer}\", Product=\"{option.Product}\", Instrument=\"{option.Instrument}\"");

            var response = interactor.Execute(input);

            if (response.RemovedCount > 0)
            {
                Console.WriteLine($"{response.RemovedCount} records deleted from database({option.DatabasePath})");
                return(0);
            }

            Console.WriteLine("records not found");
            return(0);
        }
Пример #4
0
        public int Execute(ICommandOption opt)
        {
            var option = (CommandOption)opt;

            var translator = new KeySwitchListListToJsonModelList {
                Formatted = true
            };
            var interactor = new ExportingTemplateJsonInteractor(translator);

            var response = interactor.Execute();

            if (StringHelper.IsNullOrTrimEmpty(option.OutputPath))
            {
                Console.Out.WriteLine(response.Text);
            }
            else
            {
                var outputDirectory = Path.GetDirectoryName(option.OutputPath) !;
                PathUtility.CreateDirectory(outputDirectory);

                Console.WriteLine($"generating json to {option.OutputPath}");
                File.WriteAllText(option.OutputPath, response.Text);
            }

            return(0);
        }
Пример #5
0
        public int Execute(ICommandOption opt)
        {
            var option = (CommandOption)opt;

            var repository = new XlsxExportingRepository(new FilePath(option.OutputPath));
            var interactor = new ExportingTemplateXlsxInteractor(repository);

            var response = interactor.Execute(new ExportingTemplateXlsxRequest());

            return(response.Result ? 0 : 1);
        }
Пример #6
0
        public int Execute(ICommandOption opt)
        {
            var option = (CommandOption)opt;

            var entities = Query(option);

            using var xlsxRepository = new XlsxExportingRepository(new FilePath(option.OutputPath));
            var interactor = new ExportingXlsxInteractor(xlsxRepository);
            var response   = interactor.Execute(new ExportingXlsxRequest(entities));

            return(response.Result ? 0 : 1);
        }
Пример #7
0
 public void Undo(int levels)
 {
     for (int i = 1; i <= levels; i++)
     {
         if (undoCommands.Count != 0)
         {
             ICommandOption command = undoCommands.Pop();
             if (command.UnExecute())
             {
                 redoCommands.Push(command);
             }
         }
     }
 }
Пример #8
0
        public int Execute(ICommandOption opt)
        {
            var option = (CommandOption)opt;

            using var repository = new LiteDbKeySwitchRepository(option.DatabasePath);
            var translator = new JsonModelListToKeySwitchList();
            var presenter  = new IImportingTextPresenter.Console();
            var interactor = new ImportingJsonInteractor(repository, translator, presenter);

            var input = new ImportingTextRequest(File.ReadAllText(option.InputPath));

            _ = interactor.Execute(input);

            return(0);
        }
        public int Execute(ICommandOption opt)
        {
            var option = (CommandOption)opt;

            using var repository = new LiteDbKeySwitchRepository(option.DatabasePath);
            var translator = new KeySwitchToStudioOneKeySwitchModel();
            var presenter  = new IExportingStudioOneKeySwitchPresenter.Null();
            var interactor = new ExportingStudioOneKeySwitchInteractor(repository, translator, presenter);

            var input = new ExportingStudioOneKeySwitchRequest(option.Developer, option.Product, option.Instrument);

            Console.WriteLine($"Developer=\"{option.Developer}\", Product=\"{option.Product}\", Instrument=\"{option.Instrument}\"");

            var response = interactor.Execute(input);

            if (!response.Elements.Any())
            {
                Console.WriteLine("records not found");
                return(0);
            }

            foreach (var i in response.Elements)
            {
                var outputDirectory = option.OutputDirectory;

                if (option.DirectoryStructure)
                {
                    outputDirectory = EntityDirectoryHelper.CreateDirectoryTree(
                        i.KeySwitch,
                        new DirectoryPath(option.OutputDirectory)
                        ).Path;
                }
                else
                {
                    PathUtility.CreateDirectory(outputDirectory);
                }

                var prefix = $"{i.KeySwitch.ProductName} {i.KeySwitch.InstrumentName}";
                var path   = $"{prefix}.keyswitch";
                path = PathUtility.GenerateFilePathWhenExist(path, outputDirectory, option.OverWrite);

                Console.Out.WriteLine($"export to {path}");
                File.WriteAllText(path, i.XmlText.Value, Encoding.UTF8);
            }

            return(0);
        }
 /// <summary>
 /// 创建指定类型的ICommandOption
 /// </summary>
 /// <param name="typeName">完整的类型名称</param>
 public ICommandOption CreateCommandOption(string typeName)
 {
     foreach (ObjectCreator creator in typeCommandOptions)
     {
         if (creator.ObjectType.FullName.Equals(typeName))
         {
             try
             {
                 ICommandOption newCommandOption = (ICommandOption)creator.CreateInstance();
                 return(newCommandOption);
             }
             catch (Exception ex)
             {
                 throw ex;
             }
         }
     }
     return(null);
 }
Пример #11
0
        public int Execute(ICommandOption opt)
        {
            var option    = (CommandOption)opt;
            var batchText = File.ReadAllLines(option.BatchFilePath);

            var stopWatch = Stopwatch.StartNew();

            Console.WriteLine("*** Batch mode begin");

            foreach (var x in batchText)
            {
                var line = x.Trim();

                if (string.IsNullOrEmpty(line) || line.StartsWith("#"))
                {
                    continue;
                }

                var commandOption = SplitCommandLine(line);

                Console.WriteLine($"*** Command Option: {line}");

                var exitCode = Program.Execute(commandOption);

                if (exitCode != 0)
                {
                    Console.WriteLine($"Aborted. (Exit code={exitCode})");
                    Console.WriteLine($"Command Option: {line})");
                    return(1);
                }
            }

            stopWatch.Stop();
            Console.WriteLine($"{batchText.Length} batch processed in {stopWatch.ElapsedMilliseconds} ms.");

            return(0);
        }
 public PluginCommandOptionViewModel(ICommandOption model, ILocalizationProvider localizationProvider)
     : base(model.NameTextId, model.DescriptionTextId)
 {
     _pluginOptionViewModelImplementation = new PluginOptionViewModelImplementation(model, localizationProvider, this);
     Command = AsyncCommand.Create(model.Execute, model.CanExecute);
 }