Ejemplo n.º 1
0
        private IPaymentReader GetReader(FileRawPaymentRecordProvider provider)
        {
            IPaymentReader reader;
            var filename = provider.PaymentFilePath;
            if (filename.EndsWith("_alphapayment.txt"))
            {
                reader = new AlphaPaymentReader(provider);
            }
            else if (filename.EndsWith("_betapayment.txt"))
            {
                reader = new BetaPaymentReader(provider, DateTime.Today);
            }
            else
            {
                throw new ApplicationException($"Unable to determine type for payment file: {filename}");
            }

            return reader;
        }
Ejemplo n.º 2
0
        public void HandleFile(string filename, IPaymentReceiver receiver)
        {
            ICollection<PaymentBundle> bundles;
            using (var provider = new FileRawPaymentRecordProvider(filename))
            {
                var reader = GetReader(provider);

                bundles = reader.ProcessAllRecords();
            }

            foreach (var bundle in bundles)
            {
                receiver.StartPaymentBundle(bundle.AccountNumber, bundle.PaymentDate, bundle.Currency);
                foreach (var payment in bundle.Payments)
                {
                    receiver.Payment(payment.Amount, payment.Reference);
                }
                receiver.EndPaymentBundle();
            }
        }