Example #1
0
        /// <summary>
        /// Class constructor. Sets FileOperationsHaveErrors to true if payment transactions file name is empty or does not exist
        /// </summary>
        /// <param name="logger">Logger object</param>
        /// <param name="transactionStringReader">Payment transactions reader from specific format</param>
        /// <param name="transactionFileName">Payment transactions file name</param>
        public TransactionsTextFileReader(ICalcFeesLogger logger, ITransactionStringReader transactionStringReader, string transactionFileName)
        {
            _logger = logger ?? throw new ArgumentNullException("logger");
            _transactionStringReader = transactionStringReader ?? throw new ArgumentNullException("transactionStringReader");

            _transactionFileName     = transactionFileName;
            FileOperationsHaveErrors = false;

            /*
             * Sets FileOperationsHaveErrors to true for empty name or file not found already here
             */
            if (string.IsNullOrWhiteSpace(transactionFileName))
            {
                _logger.WriteLine("Cannot read from file if file name is empty");
                FileOperationsHaveErrors = true;
            }

            if (!File.Exists(transactionFileName))
            {
                _logger.WriteLine("File does not exist - " + transactionFileName);
                FileOperationsHaveErrors = true;
            }
        }
        static void Main(string[] args)
        {
            _logger = new CalcFeesConsoleLogger();

            if (!ParseArguments(args))
            {
                return;
            }

            var fileReader = new TransactionsTextFileReader(_logger, new TransactionString3ColumnReader(_logger), _filePath);

            if (fileReader.HasError())
            {
                _logger.WriteLine("Could not initialise transactions file for reading - " + _filePath);
                return;
            }

            var processor = new TransactionsProcessor(_logger, fileReader, new TransactionsConsoleWriter(_logger, new TransactionString3ColumnWriter(_logger)));

            if (!processor.ProcessAllTransactions())
            {
                _logger.WriteLine("Could not process all transactions - " + _filePath);
            }
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="logger"></param>
 public TransactionString3ColumnWriter(ICalcFeesLogger logger)
 {
     _logger = logger ?? throw new ArgumentNullException("logger");
 }
 public TransactionsTextFileReaderChild(ICalcFeesLogger logger,
                                        ITransactionStringReader transactionStringReader, string transactionFileName) : base(logger,
                                                                                                                             transactionStringReader, transactionFileName)
 {
 }
Example #5
0
 public TransactionString3ColumnReaderChild(ICalcFeesLogger logger) : base(logger)
 {
 }
Example #6
0
 /// <summary>
 /// Class constructor
 /// </summary>
 /// <param name="logger">logger object</param>
 /// <param name="transactionStringWriter">payment transaction writer into string</param>
 public TransactionsConsoleWriter(ICalcFeesLogger logger, ITransactionStringWriter transactionStringWriter)
 {
     _logger = logger ?? throw new ArgumentNullException("logger");
     _transactionStringWriter = transactionStringWriter ?? throw new ArgumentNullException("transactionStringWriter");
 }
 public TransactionsProcessorChild(ICalcFeesLogger logger, ITransactionsReader transactionsReader, ITransactionsWriter transactionsWriter) : base(logger, transactionsReader, transactionsWriter)
 {
 }
 /// <summary>
 /// Class constructor.
 /// </summary>
 /// <param name="logger">Logger object</param>
 /// <param name="transactionsReader">Payment transactions reader from any possible source</param>
 /// <param name="transactionsWriter">Payment transactions writer to any possible source</param>
 public TransactionsProcessor(ICalcFeesLogger logger, ITransactionsReader transactionsReader, ITransactionsWriter transactionsWriter)
 {
     _logger             = logger ?? throw new ArgumentNullException("logger");
     _transactionsReader = transactionsReader ?? throw new ArgumentNullException("transactionsReader");
     _transactionsWriter = transactionsWriter ?? throw new ArgumentNullException("transactionsWriter");
 }