Beispiel #1
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();
        }
Beispiel #2
0
        public void Do_matching(FilePaths main_file_paths)
        {
            var loading_info = new CredCard2AndCredCard2InOutLoader().Loading_info();

            loading_info.File_paths = main_file_paths;
            var file_loader = new FileLoader(_input_output);
            ReconciliationInterface <CredCard2Record, CredCard2InOutRecord> reconciliation_interface
                = file_loader.Load_files_and_merge_data <CredCard2Record, CredCard2InOutRecord>(loading_info, _spreadsheet_factory, this);

            reconciliation_interface?.Do_the_matching();
        }
        Create_reconciliation_interface <TThirdPartyType, TOwnedType>(
            DataLoadingInformation <TThirdPartyType, TOwnedType> data_loading_info,
            Reconciliator <TThirdPartyType, TOwnedType> reconciliator,
            IMatcher matcher)
            where TThirdPartyType : ICSVRecord, new()
            where TOwnedType : ICSVRecord, new()
        {
            _input_output.Output_line("Creating reconciliation interface...");
            var reconciliation_interface = new ReconciliationInterface <TThirdPartyType, TOwnedType>(
                new InputOutput(),
                reconciliator,
                data_loading_info.Third_party_descriptor,
                data_loading_info.Owned_file_descriptor,
                matcher);

            return(reconciliation_interface);
        }
        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);
        }