void IAgencyPaymentService.SavePayments(IEnumerable <IBacsResult> payments, BacsExportType type)
        {
            var filename = string.Format(BACS_EXPORT_CSV_FORMAT, type);

            using var csv = new CsvWriter(new StreamWriter(new FileStream(filename, FileMode.Create)));
            csv.WriteRecords(payments);
        }
        public async Task ExportZip(BacsExportType bacsExportType)
        {
            var startDate = DateTime.Now.AddMonths(-1);
            var endDate   = DateTime.Now;

            try
            {
                List <IBacsResult> payments;
                switch (bacsExportType)
                {
                case BacsExportType.Agency:
                    if (agencyPaymentsConfiguration.Enabled)
                    {
                        payments = await agencyPaymentService.GetAgencyPayments(startDate, endDate);

                        agencyPaymentService.SavePayments(payments, bacsExportType);
                    }

                    break;

                case BacsExportType.Supplier:
                    var supplierBacsExport = supplierPaymentService.GetSupplierPayments(startDate, endDate);
                    supplierPaymentService.SaveSupplierBacsExport(supplierBacsExport);
                    break;

                default:
                    throw new Exception(INVALID_BACSEXPORTTYPE_ERROR);
                }
            }
            catch (InvalidOperationException inOpEx)
            {
                throw new Exception(inOpEx.Message);
            }
        }
        public async Task ExportZip(BacsExportType bacsExportType)
        {
            ////var startDate = DateTime.Now.AddMonths(-1);
            ////var endDate = DateTime.Now;
            ///

            var startDate = new DateTime(2019, 04, 01);
            var endDate   = startDate.AddMonths(1);

            try
            {
                if (bacsExportType == BacsExportType.Agency &&
                    !bool.Parse(Application.Settings["EnableAgencyPayments"]))
                {
                    return;
                }

                var paymentService = _paymentServiceFactory.GetPaymentService(bacsExportType);
                var payments       = await paymentService.GetPaymentAsync(startDate, endDate);

                _savePaymentService.Save(payments, $"{bacsExportType}_BACSExport.csv");
            }
            catch (InvalidOperationException inOpEx)
            {
                // ILogger
                ////throw new Exception(inOpEx.Message); // write logs here,
                ///don't throw exception, calling function is not catching
            }
        }
        private void SavePayments(IEnumerable <BacsResult> payments, BacsExportType type)
        {
            var filename = string.Format("{0}_BACSExport.csv", type);

            using (var csv = new CsvWriter(new StreamWriter(new FileStream(filename, FileMode.Create))))
            {
                csv.WriteRecords(payments);
            }
        }
        public void VerifyCsvRecords <T>(BacsExportType bacsExportType, Action <T[]> verify)
        {
            var filename = BacsExportService.GetFilename(bacsExportType);

            Assert.Equal(filename, _filenameResult);
            var records = Assert.IsAssignableFrom <IEnumerable <T> >(_recordsResult);

            verify(records.ToArray());
        }
        private void SavePayments(IEnumerable <BacsResult> payments, BacsExportType type)
        {
            var filename = string.Format("{0}_BACSExport.csv", type);

            using (var writer = new StreamWriter(new FileStream(filename, FileMode.Create)))
            {
                using (var csv = new CsvHelper.CsvWriter(writer, System.Globalization.CultureInfo.CurrentCulture))
                {
                    csv.WriteRecords(payments);
                }
            }
        }
Exemple #7
0
        public IPaymentService GetPaymentService(BacsExportType bacsExportType)
        {
            if (bacsExportType == BacsExportType.Agency)
            {
                return(_paymentServices[typeof(AgencyPaymentService)]);
            }

            if (bacsExportType == BacsExportType.Supplier)
            {
                return(_paymentServices[typeof(SupplierPaymentService)]);
            }

            throw new Exception("No export type provided.");
        }
        public IPaymentService GetPaymentTypeService(BacsExportType bacsExportType)
        {
            try
            {
                switch (bacsExportType)
                {
                case BacsExportType.Agency:
                    return(new AgencyPaymentService(_paymentsRepository, _agencyRepository, _applicationWrapper));

                case BacsExportType.Supplier:
                    return(new SupplierPaymentService(_invoiceTransactionRepository, _candidateRepository));

                default:
                    throw new Exception("Invalid BACS Export Type.");
                }
            }
            catch (InvalidOperationException inOpEx)
            {
                throw new Exception(inOpEx.Message);
            }
        }
        public async Task ExportZip(BacsExportType bacsExportType)
        {
            if (bacsExportType == BacsExportType.None)
            {
                const string invalidExportTypeMessage = "No export type provided.";
                throw new Exception(invalidExportTypeMessage);
            }

            var startDate = DateTime.Now.AddMonths(-1);
            var endDate   = DateTime.Now;

            try
            {
                List <BacsResult> payments;
                switch (bacsExportType)
                {
                case BacsExportType.Agency:
                    if (Application.Settings["EnableAgencyPayments"] == "true")
                    {
                        payments = await GetAgencyPayments(startDate, endDate);

                        SavePayments(payments, bacsExportType);
                    }

                    break;

                case BacsExportType.Supplier:
                    var supplierBacsExport = GetSupplierPayments(startDate, endDate);
                    SaveSupplierBacsExport(supplierBacsExport);
                    break;

                default:
                    throw new Exception("Invalid BACS Export Type.");
                }
            }
            catch (InvalidOperationException inOpEx)
            {
                throw new Exception(inOpEx.Message);
            }
        }
        public async Task ExportZip(BacsExportType bacsExportType)
        {
            if (bacsExportType == BacsExportType.None)
            {
                const string invalidExportTypeMessage = "No export type provided.";
                throw new Exception(invalidExportTypeMessage);
            }

            var startDate = _dateTimeService.GetStartDateTime();
            var endDate   = _dateTimeService.GetCurrentDateTime();

            var service = _paymentServiceFactory.GetPaymentTypeService(bacsExportType);

            if (!service.ArePaymentsEnabled())
            {
                throw new Exception("Invalid BACS Export Type.");
            }

            var payments = await service.GetPayments(startDate, endDate);

            var filename = GetFilename(bacsExportType);

            _csvWriterWrapper.WriteRecords(payments, filename);
        }
 public static string GetFilename(BacsExportType type)
 {
     return($"{type}_BACSExport.csv");;
 }