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