public EmployeePayslipGenerator(BaseInputFile inputFile, IPayslipCalculator payslipCalculator, IPayslipProcessor payslipPayslipProcessor)
 {
     _inputFile         = inputFile;
     _payslipCalculator = payslipCalculator;
     _payslipProcessor  = payslipPayslipProcessor;
     _validPayslips     = new List <BaseValidPayslip>();
     _invalidPayslips   = new List <BaseInvalidPayslip>();
 }
 public EmployeePayslipGenerator()
 {
     _inputFile         = new CsvInputFile();
     _payslipCalculator = new EmployeePayslipCalculator();
     _payslipProcessor  = new EmployeePayslipProcessor();
     _validPayslips     = new List <BaseValidPayslip>();
     _invalidPayslips   = new List <BaseInvalidPayslip>();
 }
 private void ProcessDefaultPayslip(BaseInputFile inputFile)
 {
     inputFile.GetListOfObjectInFileAsStrings();
     Console.WriteLine("I AM THE DEFAULT PAYSLIP FORMAT");
 }
 private void ProcessOtherPayslip(BaseInputFile inputFile)
 {
     inputFile.GetListOfObjectInFileAsStrings();
     Console.WriteLine("I AM ANOTHER PAYSLIP FORMAT!");
 }
        public (List <BasePayslipInformation> validPayslipInformation, List <BaseInvalidPayslip> invalidPayslips) ProcessingInformation(BaseInputFile inputInputFile)
        {
            _processedList  = new List <BasePayslipInformation>();
            _invalidObjects = new List <BaseInvalidPayslip>();

            switch (_typeOfPayslipToProcess)
            {
            case ProcessingType.EmployeePayslip:
            {
                ProcessEmployeePayslip((CsvInputFile)inputInputFile);
                break;
            }

            case ProcessingType.Other:
            {
                ProcessOtherPayslip(inputInputFile);
                break;
            }

            default:
            {
                ProcessDefaultPayslip(inputInputFile);
                break;
            }
            }

            return(_processedList, _invalidObjects);
        }
 public (List <BasePayslipInformation> validPayslipInformation, List <BaseInvalidPayslip> invalidPayslips) ProcessingInformation(BaseInputFile inputInputFile)
 {
     throw new NotImplementedException();
 }