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); }
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); }
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); }
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); }
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); }
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); }
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); } } } }
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); }
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); }