public override async Task Run(TaxFormGeneratorArguments arguments) { var dividendGrossAmount = await this.currencyConverter.ConvertCurrency((decimal)arguments.Amount, arguments.Currency, arguments.Date); var dividendBreakdown = this.dividendCalculator.Calculate(dividendGrossAmount); var generateJOPPDTask = GenerateJOPPD(arguments.Date, dividendBreakdown, arguments.StartDate, arguments.EndDate); var generatePayment2DBarcodeTask = GeneratePayment(arguments.Date, dividendBreakdown); await Task.WhenAll(generateJOPPDTask, generatePayment2DBarcodeTask); }
public override async Task Run(TaxFormGeneratorArguments arguments) { var salaryGrossTotalAmount = await this.currencyConverter.ConvertCurrency((decimal)arguments.Amount, arguments.Currency, arguments.Date); var salaryBreakdown = this.salaryCalculator.Calculate(salaryGrossTotalAmount); var formStart = new DateTime(arguments.SalaryMonth.Value.Year, arguments.SalaryMonth.Value.Month, 1); var formEnd = formStart.AddMonths(1).AddDays(-1); var taxAndSurtaxFormTask = GenerateTaxAndSurtaxJOPPD(arguments.Date, salaryBreakdown, formStart, formEnd); var contributionsFormTask = GenerateContributionsJOPPD(arguments.Date, salaryBreakdown, formStart, formEnd); var paymentsTask = GeneratePayments(arguments.Date, arguments.SalaryMonth.Value, salaryBreakdown); await Task.WhenAll(taxAndSurtaxFormTask, contributionsFormTask, paymentsTask); }
public abstract Task Run(TaxFormGeneratorArguments arguments);