public BankAndBankInLoader(ISpreadsheetRepoFactory spreadsheet_repo_factory)
        {
            var expected_income_file_io = new FileIO <ExpectedIncomeRecord>(spreadsheet_repo_factory);

            _expected_income_csv_file = new CSVFile <ExpectedIncomeRecord>(expected_income_file_io);
            _expected_income_file     = new ExpectedIncomeFile(_expected_income_csv_file);
        }
 public BankAndBankInMatcher(
     IInputOutput input_output,
     ISpreadsheetRepoFactory spreadsheet_factory,
     IBankAndBankInLoader bank_and_bank_in_loader)
 {
     _input_output                = input_output;
     _spreadsheet_factory         = spreadsheet_factory;
     _bank_and_bank_in_loader     = bank_and_bank_in_loader;
     MatchedExpectedIncomeRecords = new List <ExpectedIncomeRecord>();
 }
Exemplo n.º 3
0
        public void Do_matching(FilePaths main_file_paths, ISpreadsheetRepoFactory spreadsheet_factory)
        {
            var loading_info = ((BankAndBankInLoader)_bank_and_bank_in_loader).Loading_info();

            loading_info.File_paths = main_file_paths;
            var file_loader = new FileLoader(_input_output, new Clock());
            ReconciliationInterface <ActualBankRecord, BankRecord> reconciliation_interface
                = file_loader.Load_files_and_merge_data <ActualBankRecord, BankRecord>(loading_info, spreadsheet_factory, this);

            reconciliation_interface?.Do_the_matching();
        }
Exemplo n.º 4
0
        public void Do_matching(FilePaths main_file_paths, ISpreadsheetRepoFactory spreadsheet_factory)
        {
            var loading_info = new CredCard1AndCredCard1InOutLoader().Loading_info();

            loading_info.File_paths = main_file_paths;
            var file_loader = new FileLoader(_input_output, new Clock());
            ReconciliationInterface <CredCard1Record, CredCard1InOutRecord> reconciliation_interface
                = file_loader.Load_files_and_merge_data <CredCard1Record, CredCard1InOutRecord>(loading_info, spreadsheet_factory, this);

            reconciliation_interface?.Do_the_matching();
        }
        Load_files_and_merge_data <TThirdPartyType, TOwnedType>(
            DataLoadingInformation <TThirdPartyType, TOwnedType> data_loading_info,
            ISpreadsheetRepoFactory spreadsheet_factory,
            IMatcher matcher)
            where TThirdPartyType : ICSVRecord, new()
            where TOwnedType : ICSVRecord, new()
        {
            ReconciliationInterface <TThirdPartyType, TOwnedType> reconciliation_interface = null;

            try
            {
                // NB This is the only function the spreadsheet is used in, until the very end (Reconciliator.Finish, called from
                // ReconciliationInterface), when another spreadsheet instance gets created by FileIO so it can call
                // WriteBackToMainSpreadsheet. Between now and then, everything is done using csv files.
                var             spreadsheet_repo = spreadsheet_factory.Create_spreadsheet_repo();
                var             spreadsheet      = new Spreadsheet(spreadsheet_repo);
                BudgetingMonths budgeting_months = Recursively_ask_for_budgeting_months(spreadsheet);
                _input_output.Output_line("Loading data...");

                var pending_file_io     = new FileIO <TOwnedType>(spreadsheet_factory);
                var third_party_file_io = new FileIO <TThirdPartyType>(spreadsheet_factory);
                var owned_file_io       = new FileIO <TOwnedType>(spreadsheet_factory);
                var pending_file        = new CSVFile <TOwnedType>(pending_file_io);

                reconciliation_interface = Load <TThirdPartyType, TOwnedType>(
                    spreadsheet,
                    pending_file_io,
                    pending_file,
                    third_party_file_io,
                    owned_file_io,
                    budgeting_months,
                    data_loading_info,
                    matcher);
            }
            finally
            {
                spreadsheet_factory.Dispose_of_spreadsheet_repo();
            }

            _input_output.Output_line("");
            _input_output.Output_line("");

            return(reconciliation_interface);
        }
Exemplo n.º 6
0
 public PathSetter(IInputOutput input_output, ISpreadsheetRepoFactory spreadsheet_factory)
 {
     _input_output        = input_output;
     _spreadsheet_factory = spreadsheet_factory;
 }
Exemplo n.º 7
0
 public CredCard2AndCredCard2InOutMatcher(IInputOutput input_output, ISpreadsheetRepoFactory spreadsheet_factory)
 {
     _input_output        = input_output;
     _spreadsheet_factory = spreadsheet_factory;
 }
Exemplo n.º 8
0
        private void Do_matching(ISpreadsheetRepoFactory spreadsheet_factory)
        {
            var main_file_paths = new PathSetter(_input_output, spreadsheet_factory).Set_path_and_file_names();

            main_file_paths.Matcher.Do_matching(main_file_paths, spreadsheet_factory);
        }
 public BankAndBankOutMatcher(IInputOutput input_output, ISpreadsheetRepoFactory spreadsheet_factory)
 {
     _input_output        = input_output;
     _spreadsheet_factory = spreadsheet_factory;
 }
Exemplo n.º 10
0
 public FileIO(ISpreadsheetRepoFactory spreadsheet_factory, string file_path = "", string file_name = "")
 {
     _spreadsheet_factory = spreadsheet_factory;
     Set_file_paths(file_path, file_name);
 }