示例#1
0
        public static Employee GetEmployee(EmployeeDTO employeeDTO)
        {
            Employee employee = null;

            switch (employeeDTO.contractTypeName)
            {
            case "HourlySalaryEmployee":
                employee = new EmployeeHourly()
                {
                    hourlySalary = employeeDTO.hourlySalary
                };
                break;

            case "MonthlySalaryEmployee":
                employee = new EmployeeMonthly()
                {
                    monthlySalary = employeeDTO.monthlySalary
                };
                break;
            }

            employee.id               = employeeDTO.id;
            employee.name             = employeeDTO.name;
            employee.contractTypeName = employeeDTO.contractTypeName;
            employee.roleId           = employeeDTO.roleId;
            employee.roleName         = employeeDTO.roleName;
            employee.roleDescription  = employeeDTO.roleDescription;


            return(employee);
        }
示例#2
0
        /// <summary>
        /// Консольный интерфейс зарплат
        /// </summary>
        static void Main(string[] args)
        {
            while (true)
            {
                Console.Clear();
                Console.WriteLine(
                    "\n------Main Menu------" +
                    "\n1. Расчитать зарплату по ставке" +
                    "\n2. Расчитать зарплату по часам" +
                    "\n0. Выход" +
                    "\n------Main Menu------");

                Console.WriteLine("\n\n\nВыберите действие (1-2):\n>");

                switch (CheckValidation("Нажатая цифра с клавиатуры соответствует выбранному действию"))
                {
                case 1:
                {
                    EmployeeRate employeeRate =
                        new EmployeeRate(CheckValidation("Введите время работы в месяц (в часах)"),
                                         CheckValidation("Введите месячный оклад"),
                                         CheckValidation("Введите норму часов в месяц"));
                    Console.WriteLine($"Зарплата за {employeeRate.WorkTime}" +
                                      $" часов работы   c окладом {employeeRate.Salary}" +
                                      $" и с нормой в {employeeRate.Rate} часов " +
                                      $"с учетом налога на доходы физических лиц:");
                    Console.WriteLine(employeeRate.Payroll);

                    Console.WriteLine("Нажмите любую кнопку для продолжения работы");
                    Console.ReadKey();
                    break;
                }

                case 2:
                {
                    EmployeeHourly employeeHourly =
                        new EmployeeHourly(CheckValidation("Введите время работы в месяц (в часах)"),
                                           CheckValidation("Введите оплату за час работы"));

                    Console.WriteLine($"Зарплата за {employeeHourly.WorkTime}" +
                                      $" часов работы c {employeeHourly.CostPerHour} за час работы:");
                    Console.WriteLine(employeeHourly.Payroll);

                    Console.WriteLine("Нажмите любую кнопку для продолжения работы");
                    Console.ReadKey();
                    break;
                }
                }
            }
        }
示例#3
0
        public static IEmployeeGateway CreateEmployeeGateway(Employee employee)
        {
            IEmployeeGateway gateway;

            switch (employee.ContractTypeName)
            {
            case "HourlySalaryEmployee":
                gateway = new EmployeeHourly(employee);
                break;

            case "MonthlySalaryEmployee":
            default:
                gateway = new EmployeeMonthly(employee);
                break;
            }

            return(gateway);
        }
        public void GetSalary(TypeSalary key,
                              params uint[] value)
        {
            switch (key)
            {
            case TypeSalary.Hourly:
            {
                EmployeeBase   salary = SalaryFactory.GetSalary(TypeSalary.Hourly, 140, 400);
                EmployeeHourly result = salary as EmployeeHourly;
                Assert.AreSame(salary, result);
                break;
            }

            case TypeSalary.Rate:
            {
                EmployeeBase salary = SalaryFactory.GetSalary(TypeSalary.Rate, 180, 100000, 180);
                EmployeeRate result = salary as EmployeeRate;
                Assert.AreSame(salary, result);
                break;
            }
            }
        }
示例#5
0
        public static Employee GetEmployee(ExternalEmployee externalEmployee)
        {
            Employee employee = null;

            if (externalEmployee != null)
            {
                if (externalEmployee.ContractTypeName == "HourlySalaryEmployee")
                {
                    employee = new EmployeeHourly()
                    {
                        ContractTypeName = externalEmployee.ContractTypeName,
                        Id              = externalEmployee.Id,
                        Name            = externalEmployee.Name,
                        RoleDescription = externalEmployee.RoleDescription,
                        RoleId          = externalEmployee.RoleId,
                        RoleName        = externalEmployee.RoleName,
                        HourlySalary    = externalEmployee.HourlySalary
                    };
                }
                else if (externalEmployee.ContractTypeName == "MonthlySalaryEmployee")
                {
                    employee = new EmployeeMontly()
                    {
                        ContractTypeName = externalEmployee.ContractTypeName,
                        Id              = externalEmployee.Id,
                        Name            = externalEmployee.Name,
                        RoleDescription = externalEmployee.RoleDescription,
                        RoleId          = externalEmployee.RoleId,
                        RoleName        = externalEmployee.RoleName,
                        MonthlySalary   = externalEmployee.MonthlySalary
                    };
                }
            }

            return(employee);
        }
示例#6
0
        public uint EmployeeHourlyPositiveTest(uint workTime, uint costPerHour)
        {
            EmployeeHourly employeeHourly = new EmployeeHourly(workTime, costPerHour);

            return(employeeHourly.Payroll);
        }
示例#7
0
        public uint EmployeeHourlyCostPerHourPositiveTest(uint workTime, uint costPerHour)
        {
            EmployeeHourly employeeRate = new EmployeeHourly(workTime, costPerHour);

            return(employeeRate.CostPerHour);
        }
示例#8
0
        public string EmployeeHourlyTypePositiveTest(uint workTime, uint costPerHour)
        {
            EmployeeHourly employeeRate = new EmployeeHourly(workTime, costPerHour);

            return(employeeRate.Type);
        }