示例#1
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 ImportingXlsxResponse Execute(ImportingXlsxRequest request)
        {
            var keySwitches   = SpreadSheetRepository.Load();
            var insertedCount = 0;
            var updatedCount  = 0;

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

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

            return(new ImportingXlsxResponse(keySwitches));
        }