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 void RemoveTest() { var repository = new LiteDbKeySwitchRepository(new MemoryStream()); var record = TestDataGenerator.CreateKeySwitch(); #region Delete by Id repository.Save(record); Assert.AreEqual(1, repository.Count()); repository.Delete(record.Id); Assert.AreEqual(0, repository.Count()); #endregion #region Delete by DeveloperName and ProductName repository.Save(record); Assert.AreEqual(1, repository.Count()); repository.Delete(record.DeveloperName, record.ProductName); Assert.AreEqual(0, repository.Count()); #endregion #region Delete All repository.Save(record); Assert.AreEqual(1, repository.Count()); repository.DeleteAll(); Assert.AreEqual(0, repository.Count()); #endregion }
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 void ExportTest() { #region Adding To DB var dbRepository = new LiteDbKeySwitchRepository(new MemoryStream()); var articulation = TestDataGenerator.CreateArticulation( new MidiNoteOn[] { IMidiNoteOnFactory.Default.Create(1, 23) }, new MidiControlChange[] {}, new MidiProgramChange[] {} ); var entity = TestDataGenerator.CreateKeySwitch(articulation); dbRepository.Save(entity); #endregion var inputData = new ExportingStudioOneKeySwitchRequest(entity.DeveloperName.Value, entity.ProductName.Value); var interactor = new ExportingStudioOneKeySwitchInteractor( dbRepository, new KeySwitchToStudioOneKeySwitchModel(), new IExportingStudioOneKeySwitchPresenter.Null() ); var response = interactor.Execute(inputData); foreach (var i in response.Elements) { Console.WriteLine($"Expressionmap of {i.KeySwitch.InstrumentName}"); Console.WriteLine(i.XmlText); } }
public void AddTest() { var repository = new LiteDbKeySwitchRepository(new MemoryStream()); var articulation = TestDataGenerator.CreateArticulation( new List <MidiNoteOn>() { new MidiNoteOn(new MidiStatus(MidiStatusHelper.NoteOn), new MidiNoteNumber(1), new MidiVelocity(100)) }, new List <MidiControlChange>(), new List <MidiProgramChange>() ); var record = TestDataGenerator.CreateKeySwitch(articulation); var result = repository.Save(record); Assert.AreEqual(1, result.Inserted); var seq = repository.Find(record.ProductName); var cmp = seq.First(); Assert.AreEqual(record, cmp); seq = repository.Find(record.DeveloperName); cmp = seq.First(); Assert.AreEqual(record, cmp); seq = repository.Find(record.ProductName); cmp = seq.First(); Assert.AreEqual(record, cmp); seq = repository.Find(record.DeveloperName, record.ProductName, record.InstrumentName); cmp = seq.First(); Assert.AreEqual(record, cmp); }
public void RemovingTest() { const string developerName = "Developer"; const string productName = "Product"; const string instrumentName = "E.Guitar"; var inputData = new RemovingRequest( developerName, productName, instrumentName ); var presenter = new IRemovingPresenter.Console(); var repository = new LiteDbKeySwitchRepository(new MemoryStream()); var interactor = new RemovingInteractor(repository, presenter); #region Adding Test data for removing var now = DateTime.Now; var entity = TestDataGenerator.CreateKeySwitch(inputData.DeveloperName, inputData.ProductName); repository.Save(entity); #endregion Assert.AreEqual(1, repository.Count()); interactor.Execute(inputData); Assert.AreEqual(0, repository.Count()); }
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); }
private static IReadOnlyCollection <KeySwitch> Query(CommandOption option) { using var repository = new LiteDbKeySwitchRepository(option.DatabasePath); var developerName = new DeveloperName(option.Developer); var productName = new ProductName(option.Product); return(repository.Find(developerName, productName)); }
public void ExportTest() { #region Insert new keyswitch to db var memoryDb = new MemoryStream(); var dbRepository = new LiteDbKeySwitchRepository(memoryDb); var entity = IKeySwitchFactory.Default.Create( Guid.NewGuid(), "Author", "Description", DateTime.Now, DateTime.Now, "Developer Name", "Product name", "Instrument name", new List <Articulation> { IArticulationFactory.Default.Create( "name", new List <IMidiMessage> { IMidiNoteOnFactory.Default.Create(0, 100) }, new List <IMidiMessage> { IMidiControlChangeFactory.Default.Create(1, 100) }, new List <IMidiMessage> { IMidiProgramChangeFactory.Default.Create(2, 34) }, new Dictionary <string, string> { { "extra1 key", "extra1 value" }, { "extra2 key", "extra2 value" }, } ), }, new Dictionary <string, string> { { "extra1 key", "extra1 value" }, { "extra2 key", "extra2 value" }, } ); dbRepository.Save(entity); #endregion var xlsxRepository = new XlsxExportingRepository(new FilePath("out.xlsx")); var interactor = new ExportingXlsxInteractor(xlsxRepository); var response = interactor.Execute(new ExportingXlsxRequest(new[] { entity })); Assert.IsTrue(response.Result); }
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); }
public void ExportTest() { #region Adding To DB var dbRepository = new LiteDbKeySwitchRepository(new MemoryStream()); var entity = TestDataGenerator.CreateKeySwitch(); dbRepository.Save(entity); #endregion var inputData = new SearchingRequest(entity.DeveloperName.Value, entity.ProductName.Value); var interactor = new SearchingInteractor( dbRepository, new KeySwitchListListToJsonModelList { Formatted = true }, new ISearchingPresenter.Console() ); var response = interactor.Execute(inputData); Console.WriteLine(response); }
public void ImportTest() { var jsonText = "[{\"id\":\"419db555-cc1d-405c-8b28-281ded630a45\",\"author\":\"Author\",\"description\":\"Description\",\"created\":\"2020-09-15T16:21:11.354Z\",\"last_updated\":\"2020-09-15T16:21:11.354Z\",\"developer_name\":\"DeveloperName\",\"product_name\":\"ProductName\",\"instrument_name\":\"E.Guitar\",\"articulation\":[{\"articulation_name\":\"Power Chord\",\"articulation_type\":1,\"articulation_group\":0,\"articulation_color\":0,\"midi_message\":{\"note_on\":[],\"control_change\":[],\"program_change\":[]}}]}]"; var dbRepository = new LiteDbKeySwitchRepository(new MemoryStream()); var inputData = new ImportingTextRequest(jsonText); var translator = new JsonModelListToKeySwitchList(); var interactor = new ImportingJsonInteractor( dbRepository, translator, new IImportingTextPresenter.Console() ); interactor.Execute(inputData); var entities = dbRepository.Find(new DeveloperName("DeveloperName")); var cmp = translator.Translate(inputData.JsonText); var keySwitches = entities.ToList(); var cmpList = cmp.ToList(); Assert.AreEqual(keySwitches.Count(), cmpList.Count()); Assert.AreEqual(keySwitches.First(), cmpList.First()); }
public void ExportTest() { #region Adding To DB var dbRepository = new LiteDbKeySwitchRepository(new MemoryStream()); var entity = TestDataGenerator.CreateKeySwitch(); dbRepository.Save(entity); #endregion var inputData = new ExportingVstExpressionMapRequest(entity.DeveloperName.Value, entity.ProductName.Value); var interactor = new ExportingVstExpressionMapInteractor( dbRepository, new KeySwitchToVstExpressionMapModel(), new IExportingVstExpressionMapPresenter.Null() ); var response = interactor.Execute(inputData); foreach (var i in response.Elements) { Console.WriteLine($"Expressionmap of {i.KeySwitch.InstrumentName}"); Console.WriteLine(i.XmlText); } }
public void AddingTest() { var inputData = new KeySwitchAddingRequest( "Author", "Description", "Developer", "Product", "E.Guitar", "Power Chord", new List <MidiNoteOn>(), new List <MidiControlChange>(), new List <MidiProgramChange>(), new Dictionary <string, string>() ); var presenter = new IAddingPresenter.Null(); var repository = new LiteDbKeySwitchRepository(new MemoryStream()); var interactor = new AddingInteractor(repository, presenter); interactor.Execute(inputData); Assert.AreEqual(1, repository.Count()); }