public void Init()
 {
     //Arrange
     _salaryFactory         = new SalaryFactory();
     _employeeClientService = Substitute.For <IEmployeeClientService>();
     _employeeDtoManager    = new EmployeeDtoManager(_salaryFactory);
     _employeeManager       = new EmployeeManager(_employeeClientService, _employeeDtoManager);
 }
        public void AnnualSalaryHourlyTest()
        {
            double hourlySalary         = 10;
            double MonthlySalary        = 50;
            double annualSalaryExpected = 14400;

            ISalaryFactory salaryFactoryObject = SalaryFactory.SalaryFactoryCreator(EContractType.HourlySalaryEmployee, hourlySalary, MonthlySalary);
            double         annualSalaryActual  = salaryFactoryObject.GetAnnualSalary();

            Assert.AreEqual(annualSalaryExpected, annualSalaryActual, 0.001, "Annual salary is incorrect");
        }
        public async Task <List <EmployeeModel> > GetAllEmployees <T>()
        {
            List <EmployeeModel> employees = await _employeeClient.GetEmployees <EmployeeModel>();

            if (employees.Count() > default(int))
            {
                foreach (var item in employees)
                {
                    ISalaryFactory salaryFactoryObject = SalaryFactory.SalaryFactoryCreator((EContractType)Enum.Parse(typeof(EContractType), item.ContractTypeName, true), item.HourlySalary, item.MonthlySalary);
                    item.AnnualSalary = salaryFactoryObject.GetAnnualSalary();
                }
            }
            return(employees);
        }
Exemple #4
0
        public IEnumerable <EmployeeDTO> getCalculatedSalaryByEmployee(IEnumerable <EmployeeDTO> employees, SalaryFactory factory)
        {
            foreach (var item in employees)
            {
                if (item.contractTypeName == "HourlySalaryEmployee")
                {
                    ISalaryFactory factoryHourly = factory.GetCalculatedSalary(item.contractTypeName);
                    item.AnnualSalary = factoryHourly.calculateSalary(item.hourlySalary);
                }
                else if (item.contractTypeName == "MonthlySalaryEmployee")
                {
                    ISalaryFactory factoryMonthly = factory.GetCalculatedSalary(item.contractTypeName);
                    item.AnnualSalary = factoryMonthly.calculateSalary(item.monthlySalary);
                }
            }

            return(employees);
        }
Exemple #5
0
 public EmployeeLogic(IEmployeeService employeeService, ISalaryFactory salaryFactory)
 {
     this.employeeService = employeeService;
     this.salaryFactory   = salaryFactory;
 }
Exemple #6
0
 public EmployeeDtoManager(ISalaryFactory salaryFactory)
 {
     this._salaryFactory = salaryFactory;
 }
 public EmployeeService(IEmployeeRepository employeeRepository, ISalaryFactory salaryFactory)
 {
     this._employeeRepository = employeeRepository;
     this._salaryFactory      = salaryFactory;
 }
Exemple #8
0
 /// <summary>
 /// Class constructor
 /// </summary>
 /// <param name="employeeRepository"></param>
 /// <param name="salaryFactory"></param>
 public EmployeeService(IEmployeeRepository employeeRepository, ISalaryFactory salaryFactory)
 {
     _employeeRepository = employeeRepository ?? throw new ArgumentNullException(nameof(employeeRepository));
     _salaryFactory      = salaryFactory ?? throw new ArgumentNullException(nameof(salaryFactory));
 }