/// <summary>
        /// maaş tipine göre kullanılacak arayüzü bulur
        /// </summary>
        /// <param name="salaryType"></param>
        /// <returns></returns>
        public ICalculatorService GetCalculatorService(SalaryType salaryType)
        {
            switch (salaryType)
            {
            case SalaryType.Fixed:
                _calculatorService = new FixedCalculator();
                break;

            case SalaryType.Daily:
                _calculatorService = new DailyCalculator();
                break;

            case SalaryType.FixedPlusOvertime:
                _overtimeCalculator       = new OvertimeCalculator();
                _calculatorServiceForPlus = new FixedCalculator();
                _calculatorService        = new SalaryPlusOvertimeCalculator(_overtimeCalculator, _calculatorServiceForPlus);
                break;

            case SalaryType.DailyPlusOvertime:
                _overtimeCalculator       = new OvertimeCalculator();
                _calculatorServiceForPlus = new DailyCalculator();
                _calculatorService        = new SalaryPlusOvertimeCalculator(_overtimeCalculator, _calculatorServiceForPlus);
                break;

            default:
                throw new NotImplementedException();
            }
            return(_calculatorService);
        }
Ejemplo n.º 2
0
        public static IOvertimeCalculator GetOvertimeCalculator(UserResultVM user, UserResult initialUserResult, int rateTypeId)
        {
            IOvertimeCalculator calculator = null;

            switch ((RateType)rateTypeId)
            {
            case RateType.PerHour:
            {
                calculator = new HourlyOvertimeCalculator();
                break;
            }

            case RateType.Fixed:
            {
                calculator = new FixedOvertimeCalculator();
                break;
            }
            }

            calculator.Configure(user, initialUserResult);

            return(calculator);
        }
Ejemplo n.º 3
0
 public SalaryPlusOvertimeCalculator(IOvertimeCalculator overtimeCalculator, ICalculatorService calculatorService)
 {
     _overtimeCalculator = overtimeCalculator;
     _calculatorService  = calculatorService;
 }