Example #1
0
        public async Task <IActionResult> GetTimesheetsByApproverId(int id)
        {   //Finds employee by EmployeeID
            var approver = await GetEmployeeByIdHelper(id);

            //Finds employees by ApproverID
            var employees = await GetEmployeeByApproverIdHelper(id);

            List <TimesheetApproverViewModel> timesheetApproverViews = new List <TimesheetApproverViewModel>();

            foreach (Employee item in employees)
            {
                //Null coalesce
                //https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-coalescing-operator
                var supervisor = await GetEmployeeByIdHelper((item.SupervisorId ?? 0));

                var timesheets = await GetTimesheetByEmpIdHelper(item.EmployeeId);

                timesheets = timesheets.Where(t => t.Status == TimesheetStatus.Pending);

                Credential  empCred     = (await _credentialRepository.GetAll()).FirstOrDefault(c => c.EmployeeId == item.EmployeeId);
                LabourGrade labourGrade = await _labourGradeRepository.Get(item.LabourGradeId);

                EmployeeDetailsViewModel thisEmployee = new EmployeeDetailsViewModel(item, empCred, new LabourGradeViewModel(labourGrade),
                                                                                     new EmployeeNameViewModel(approver.First()), new EmployeeNameViewModel(supervisor.First()));

                foreach (Timesheet timesheet in timesheets)
                {
                    TimesheetApproverViewModel timesheetApproverView = new TimesheetApproverViewModel(timesheet, thisEmployee);
                    timesheetApproverViews.Add(timesheetApproverView);
                }
            }

            return(Ok(timesheetApproverViews));
        }
Example #2
0
        public async Task <IActionResult> GetEmployee(int id)
        {
            Employee emp = await _employeeRepository.Get(id);

            Credential  empCred     = (await _credentialRepository.GetAll()).FirstOrDefault(c => c.EmployeeId == emp.EmployeeId);
            LabourGrade labourGrade = await _labourGradeRepository.Get(emp.LabourGradeId);

            Employee empTimesheetApprover = null;
            Employee empSupervisor        = null;

            if (emp.TimesheetApproverId != null)
            {
                empTimesheetApprover = await _employeeRepository.Get((int)emp.TimesheetApproverId); //cast nullable to int
            }

            if (emp.SupervisorId != null)
            {
                empSupervisor = await _employeeRepository.Get((int)emp.SupervisorId);
            }
            EmployeeDetailsViewModel thisEmployee = new EmployeeDetailsViewModel(emp, empCred, new LabourGradeViewModel(labourGrade),
                                                                                 new EmployeeNameViewModel(empTimesheetApprover), new EmployeeNameViewModel(empSupervisor));

            return(Ok(thisEmployee));
        }
Example #3
0
        public async Task <IActionResult> GetAllEmployees()
        {
            List <Employee> employeeList = new List <Employee>();

            //generate list of employees
            foreach (Employee item in await _employeeRepository.GetAll())
            {
                employeeList.Add(await this.GetFullEmployeeDetails(item));
            }

            List <EmployeeDetailsViewModel> employeeDetailsList = new List <EmployeeDetailsViewModel>();

            //generating list of employee details
            foreach (Employee emp in employeeList)
            {
                Credential  empCred     = (await _credentialRepository.GetAll()).FirstOrDefault(c => c.EmployeeId == emp.EmployeeId);
                LabourGrade labourGrade = await _labourGradeRepository.Get(emp.LabourGradeId);

                Employee empTimesheetApprover = null;
                Employee empSupervisor        = null;
                if (emp.TimesheetApproverId != null)
                {
                    empTimesheetApprover = await _employeeRepository.Get((int)emp.TimesheetApproverId); //cast nullable to int
                }

                if (emp.SupervisorId != null)
                {
                    empSupervisor = await _employeeRepository.Get((int)emp.SupervisorId);
                }
                EmployeeDetailsViewModel thisEmployee = new EmployeeDetailsViewModel(emp, empCred, new LabourGradeViewModel(labourGrade),
                                                                                     new EmployeeNameViewModel(empTimesheetApprover), new EmployeeNameViewModel(empSupervisor));
                employeeDetailsList.Add(thisEmployee);
            }

            return(Ok(employeeDetailsList));
        }
 public LabourGradeViewModel(LabourGrade lg)
 {
     this.LabourGradeId   = lg.LabourGradeId;
     this.LabourGradeName = lg.LabourGradeCode;
     this.HourlyWage      = lg.HourlyWage; //check convention
 }