public EmployeePayrollSchedule()
        {
            _employeeDepartmentRepository       = new EmployeeDepartmentRepository(_databaseFactory);
            _employeeRepository                 = new EmployeeRepository(_databaseFactory, _employeeDepartmentRepository);
            _attendanceRepository               = new AttendanceRepository(_databaseFactory);
            _attendanceLogRepository            = new AttendanceLogRepository(_databaseFactory, _employeeRepository);
            _settingRepository                  = new SettingRepository(_databaseFactory);
            _employeeWorkScheduleRepository     = new EmployeeWorkScheduleRepository(_databaseFactory);
            _employeeInfoRepository             = new EmployeeInfoRepository(_databaseFactory);
            _frequencyRepository                = new FrequencyRepository(_databaseFactory);
            _paymentFrequencyRepository         = new PaymentFrequencyRepository(_databaseFactory);
            _employeePayrollRepository          = new EmployeePayrollRepository(_databaseFactory);
            _employeePayrollDeductionRepository = new EmployeePayrollDeductionRepository(_databaseFactory);
            _employeeDailyPayrollRepository     = new EmployeeDailyPayrollRepository(_databaseFactory);
            _employeeHoursRepository            = new EmployeeHoursRepository(_databaseFactory);
            _totalEmployeeHoursRepository       = new TotalEmployeeHoursRepository(_databaseFactory);
            _holidayRepository                  = new HolidayRepository(_databaseFactory);
            _employeeDeductionRepository        = new EmployeeDeductionRepository(_databaseFactory);
            _deductionRepository                = new DeductionRepository(_databaseFactory);
            _employeePayrollItemRepository      = new EmployeePayrollItemRepository(_databaseFactory);
            _employeeAdjustmentRepository       = new EmployeeAdjustmentRepository(_databaseFactory);
            _adjustmentRepository               = new AdjustmentRepository(_databaseFactory);

            _employeeService             = new EmployeeService(_employeeRepository);
            _employeeInfoService         = new EmployeeInfoService(_employeeInfoRepository);
            _attendanceLogService        = new AttendanceLogService(_attendanceLogRepository);
            _attendanceService           = new AttendanceService(_unitOfWork, _attendanceRepository, _attendanceLogService, _employeeHoursRepository);
            _settingService              = new SettingService(_settingRepository);
            _employeeWorkScheduleService = new EmployeeWorkScheduleService(_employeeWorkScheduleRepository);
            _employeeSalaryService       = new EmployeeSalaryService();
            _employeeHoursService        = new EmployeeHoursService(_unitOfWork, _employeeHoursRepository,
                                                                    _attendanceService, _settingService, _employeeWorkScheduleService, _employeeInfoService);
            _totalEmployeeHoursService   = new TotalEmployeeHoursService(_unitOfWork, _totalEmployeeHoursRepository, _employeeHoursService, _settingService);
            _holidayService              = new HolidayService(_holidayRepository, _settingRepository, _unitOfWork);
            _employeeDailyPayrollService = new EmployeeDailyPayrollService(_unitOfWork, _totalEmployeeHoursService, _employeeWorkScheduleService, _holidayService,
                                                                           _settingService, _employeeDailyPayrollRepository, _employeeInfoService, _employeeSalaryService);
            _deductionService = new DeductionService(_deductionRepository);
            _taxService       = new TaxService(_taxRepository);
            _employeePayrollDeductionService = new EmployeePayrollDeductionService(_unitOfWork, _settingService, _employeeSalaryService, _employeeInfoService, _employeeDeductionService, _deductionService, _employeePayrollDeductionRepository, _taxService);
            _employeePayrollItemService      = new EmployeePayrollItemService(_unitOfWork, _employeePayrollItemRepository, _totalEmployeeHoursService, _employeeWorkScheduleService, _holidayService, _settingService, _employeeInfoService, _employeeSalaryService, _employeePayrollRepository, _employeePayrollDeductionRepository, _employeeAdjustmentRepository, _adjustmentRepository);
            _employeeAdjusmentService        = new EmployeeAdjustmentService(_employeeAdjustmentRepository, _employeeRepository);
            _employeePayrollService          = new EmployeePayrollService(_unitOfWork, _employeePayrollRepository, _settingService, null, _employeeInfoService, null, _employeeService, _totalEmployeeHoursService, _employeePayrollItemService, _employeeAdjusmentService);
        }
 public MaintenanceController(IUnitOfWork unitOfWork, ISettingRepository settingRepository, IPositionRepository positionRepository, IPaymentFrequencyRepository paymentFrequencyRepository,
                              IHolidayRepository holidayRepository, IDepartmentRepository departmentRepository, ILeaveRepository leaveRepository, ILoanRepository loanRepository,
                              IMachineRepository machineRepository, IWebService webService, IDeductionRepository deductionRepository,
                              IEmployeeMachineService emplyeeMachineService, IWorkScheduleRepository workScheduleRepository, IAdjustmentRepository adjustmentRepository,
                              ICompanyRepository companyRepository)
 {
     _unitOfWork                 = unitOfWork;
     _settingRepository          = settingRepository;
     _positionRepository         = positionRepository;
     _paymentFrequencyRepository = paymentFrequencyRepository;
     _departmentRepository       = departmentRepository;
     _holidayRepository          = holidayRepository;
     _leaveRepository            = leaveRepository;
     _loanRepository             = loanRepository;
     _machineRepository          = machineRepository;
     _webService                 = webService;
     _emplyeeMachineService      = emplyeeMachineService;
     _workScheduleRepository     = workScheduleRepository;
     _deductionRepository        = deductionRepository;
     _adjustmentRepository       = adjustmentRepository;
     _companyRepository          = companyRepository;
 }