public async Task <IEnumerable <Employee> > GetByIdAsync(int id)
        {
            var employees = await _employeeRepository.GetAllAsync();

            return(employees.Where((employee) => employee.Id == id).Select(employee =>
            {
                employee.AnnualSalary = SalaryFactory.GetSalary(employee).AnnualSalary();
                return employee;
            }));
        }
        public async Task <IEnumerable <Employee> > GetAllAsync()
        {
            var employees = await _employeeRepository.GetAllAsync();

            return(employees.Select(employee =>
            {
                employee.AnnualSalary = SalaryFactory.GetSalary(employee).AnnualSalary();
                return employee;
            }));
        }
        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);
        }
Beispiel #5
0
        public void MonthlySalaryTest()
        {
            var valor    = 20;
            var original = valor * 12;
            var n        = new SalaryFactory();
            var e        = new Employee()
            {
                MonthlySalary    = valor,
                ContractTypeName = Enums.ContractType.MonthlySalaryEmployee
            };

            var result = n.Calculate(e);

            Assert.IsTrue(original == result);
        }
Beispiel #6
0
        public async Task <EmployeeDto> GetEmployeeById(int id)
        {
            var emp = await repository.Get(id);

            return(new EmployeeDto
            {
                id = emp.id,
                roleName = emp.roleName,
                roleDescription = emp.roleDescription,
                hourlySalary = emp.hourlySalary,
                contractTypeName = emp.contractTypeName,
                monthlySalary = emp.monthlySalary,
                name = emp.name,
                roleId = emp.roleId,
                annualSalary = SalaryFactory.Get((ContractEmun)Enum.Parse(typeof(ContractEmun), emp.contractTypeName), emp.hourlySalary.Value, emp.monthlySalary.Value)
            });
        }
Beispiel #7
0
        public async Task <List <EmployeeDto> > GetEmployees()
        {
            List <EmployeeDto> employees = new List <EmployeeDto>();

            var empls = await repository.GetAll();

            //Automapper
            employees = empls.Select(s => new EmployeeDto
            {
                id              = s.id,
                name            = s.name,
                roleId          = s.roleId,
                roleDescription = s.roleDescription,
                roleName        = s.roleName,
                hourlySalary    = s.hourlySalary,
                monthlySalary   = s.monthlySalary,
                annualSalary    = SalaryFactory.Get((ContractEmun)Enum.Parse(typeof(ContractEmun), s.contractTypeName), s.hourlySalary.Value, s.monthlySalary.Value)
            }).ToList();

            return(employees);
        }
        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;
            }
            }
        }
Beispiel #9
0
        /// <summary>
        /// Кнопка добавления случайного объекта
        /// </summary>
        private void AddRandomObject_Click(object sender, EventArgs e)
        {
            var  randomCase = new Random();
            var  random     = new Random();
            uint workTime   = (uint)random.Next(1, 372);

            switch (randomCase.Next(1, 3))
            {
            case 1:
            {
                uint costPerHour = (uint)random.Next(1, 1400);
                bindingSource.Add(SalaryFactory.GetSalary(TypeSalary.Hourly, workTime, costPerHour));
                break;
            }

            case 2:
            {
                uint rate   = (uint)random.Next(1, 372);
                uint salary = (uint)random.Next(1, 1000000);
                bindingSource.Add(SalaryFactory.GetSalary(TypeSalary.Rate, workTime, salary, rate));
                break;
            }
            }
        }
Beispiel #10
0
        public ResultData <List <Employee> > GetEmployees(Employee employee)
        {
            SalaryFactory factory = new SalaryFactory();
            ResultData <List <Employee> > Result = new ResultData <List <Employee> >();
            List <Employee> resultListEmployee   = new Employees().GetEmployees().Where(item => item.id == employee.id).ToList();

            foreach (Employee emp in resultListEmployee)
            {
                ISalary salary = factory.Create(emp);
                emp.totalSalary = salary.TotalSalary();
            }

            if (resultListEmployee == null)
            {
                Result.Result  = false;
                Result.Message = "Fail service";
            }
            else
            {
                Result.Result = true;
                Result.Data   = resultListEmployee;
            }
            return(Result);
        }
Beispiel #11
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);
        }