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)); }
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)); }
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 }