Example #1
0
        public void Visit(IVisitorElement element)
        {
            var employee = element as IEmployee;

            if (employee.PayType == PayType.Hourly)
            {
                employee.PayReport = "100 Hours and $1000 in total.";
            }
        }
Example #2
0
        public void Visit(IVisitorElement element)
        {
            var employee = element as IEmployee;

            if (employee.PayType == PayType.Yearly)
            {
                employee.PayReport = "Yearly pay : $200000.";
            }
        }
Example #3
0
        public override void Visit(IVisitorElement element)
        {
            var employee = element as IEmployee;

            if (employee.JobLevel == JobLevel.SeniorManager)
            {
                employee.Income       = defaultIncome * 1.5M;
                employee.VacationDays = defaultVacationDays + 5;
            }
        }
Example #4
0
        public virtual void Visit(IVisitorElement element)
        {
            var employee = element as IEmployee;

            if (employee.JobLevel == JobLevel.Common)
            {
                employee.Income       = defaultIncome;
                employee.VacationDays = defaultVacationDays;
            }
        }
Example #5
0
        public void Visit(IVisitorElement element)
        {
            var employee   = element as IEmployee;
            var payName    = employee.PayType.ToString() + "Pay";
            var methodName = string.Format(visitMethod, payName);

            //var thisType = this.GetType();
            GetMethodInfo(methodName, employee);
            //var method = thisType.GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Instance);
            //method.Invoke(this, new object[] { employee });

            var levelName = employee.JobLevel.ToString() + "Level";

            methodName = string.Format(visitMethod, levelName);
            GetMethodInfo(methodName, employee);
            //method = thisType.GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Instance);
            //method.Invoke(this, new object[] { employee });
        }