예제 #1
0
        private EmployeeDto Map(Employee employee)
        {
            EmployeeDto dto = new EmployeeDto();

            dto.Id              = employee.Id;
            dto.Name            = employee.Name;
            dto.ContractType    = employee.ContractTypeName;
            dto.RoleName        = employee.RoleName;
            dto.RoleDescription = employee.RoleDescription ?? "-";

            switch (employee.ContractTypeName)
            {
            case "MonthlySalaryEmployee":
                _contractFactory = new MonthlyContractFactory(employee.MonthlySalary);
                break;

            case "HourlySalaryEmployee":
                _contractFactory = new HourlyContractFactory(employee.HourlySalary);
                break;

            default:
                break;
            }

            IContract _contract = _contractFactory.GetContract();

            dto.Salary = _contract.CalculateSalary();

            return(dto);
        }