private void WriteAccountDefinitions(string outputFileName) { var accountDefintionStatements = _dataStore.GetPackage(WorkFlowViewModel.InputAccountDefinitionPackageDefinition) .MakeAccountPrintable(_dataStore, WorkFlowViewModel.DisplayableAccountNamesDictionaryPackageDefinition) .MakeRecipientAccountPrintable(_dataStore, WorkFlowViewModel.DisplayableAccountNamesDictionaryPackageDefinition); AccountDefinitionGateway gateway = new AccountDefinitionGateway(outputFileName); gateway.WirteAccountDefinitions(accountDefintionStatements); }
private void ReadInput() { var input = _dataStore.GetPackage(WorkFlowViewModel.InputParametersPackageDefinition); var startDate = input.AccountingPeriodStartDate; var endDate = input.AccountingPeriodEndDate; var logger = new Logger(); var journalStatements = JournalReader.ReadJournalStatements (input.CurrentJournalFileName, input.CurrentJournalSheetName, logger); var previousBalanceSheetStatements = BalanceSheetReader.ReadBalanceSheetStatements (input.PreviousBalanceSheetFileName, input.PreviousBalanceSheetSheetName, logger); var trimmedJournalStatements = JournalStatementsCorrecter .CorrectInvalidStatements(journalStatements, startDate, endDate, logger); var trimmedBalanceSheetStatements = BalanceSheetStatementsCorrecter .CorrectInvalidStatements(previousBalanceSheetStatements, logger); var accountDefinitionStatements = new AccountDefinitionGateway(input.AccountDefinitionFileName) .GetAccountDefinitionStatements(logger, input.AccountDefintionSheetName); accountDefinitionStatements.ForEach(x => x.Account = x.Account.Trim()); var displayableAccountNames = new Dictionary <string, string>(); foreach (var accountDefinitionStatement in accountDefinitionStatements) { var printableName = accountDefinitionStatement.Account.Trim(); var name = printableName.ToLower(); if (!displayableAccountNames.ContainsKey(name)) { displayableAccountNames.Add(name, printableName); } } accountDefinitionStatements.ForEach(x => x.Account = x.Account.ToLower()); accountDefinitionStatements.ForEach(x => { if (x.RecipientAccount != null) { x.RecipientAccount = x.RecipientAccount.Trim().ToLower(); } }); var cleanedAccountDefinitionStatements = AccountDefinitionStatementsCorrecter.CorrectInvalidStatements(accountDefinitionStatements, previousBalanceSheetStatements, journalStatements, logger); _dataStore.PutPackage(trimmedBalanceSheetStatements, WorkFlowViewModel.TrimmedPreviousBalanceSheetStatements); _dataStore.PutPackage(journalStatements, WorkFlowViewModel.InputJournalStatementsPackageDefintion); _dataStore.PutPackage(trimmedJournalStatements, WorkFlowViewModel.TrimmedJournalStatementsPackageDefintion); _dataStore.PutPackage(previousBalanceSheetStatements, WorkFlowViewModel.PreviousBalanceSheetStatementsPackageDefinition); _dataStore.PutPackage(accountDefinitionStatements, WorkFlowViewModel.InputAccountDefinitionPackageDefinition); _dataStore.PutPackage(cleanedAccountDefinitionStatements, WorkFlowViewModel.CorrectedAccountDefinitionPackageDefinition); _dataStore.PutPackage(displayableAccountNames, WorkFlowViewModel.DisplayableAccountNamesDictionaryPackageDefinition); ValidateAccountingPeriod(startDate, endDate, logger); ValidateJournalStatements(journalStatements, logger); ValidateBalanceSheetStatements(previousBalanceSheetStatements, logger); logger.InformationList.Sort((a, b) => { if (a.GetType() == b.GetType()) { return(0); } if (a.GetType() == typeof(Error)) { return(-1); } return(1); }); InformationList = logger.InformationList.ToList(); OverAllMessage = GetOverAllErrorMessage(logger.InformationList.ToList()); }