コード例 #1
0
ファイル: Import.cs プロジェクト: OAK1900/KeySwitchManager
        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);
        }
コード例 #2
0
        public ImportingTextResponse Execute(ImportingTextRequest request)
        {
            var keySwitches   = Translator.Translate(request.JsonText);
            var insertedCount = 0;
            var updatedCount  = 0;

            foreach (var i in keySwitches)
            {
                var r = Repository.Save(i);
                updatedCount  += r.Updated;
                insertedCount += r.Inserted;
            }

            Presenter.Present($"{insertedCount} record(s) inserted, {updatedCount} record(s) updated");

            return(new ImportingTextResponse(updatedCount));
        }
コード例 #3
0
        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());
        }