public async Task <bool> UpdateAsync(TimeSheetVM model) { Employee employee = new Employee(); TimeSheet timeSheet = new TimeSheet(); List <TimeSheet> newTmeSheetList = new List <TimeSheet>(); var tasks = model.TimeSheetDetailVM; var employeeDetails = await this.db.Employees.Include(r => r.TimeSheets).Where(r => r.Id == model.EmployeeId).FirstOrDefaultAsync(); if (employeeDetails != null) { foreach (var task in model.TimeSheetDetailVM) { var editTask = employeeDetails.TimeSheets.Where(r => r.Id == task.Id).FirstOrDefault(); if (editTask != null) { // update the existing task editTask.Sun = task.Sun; editTask.Mon = task.Mon; editTask.Tue = task.Tue; editTask.Wed = task.Wed; editTask.Thur = task.Thur; editTask.Fri = task.Fri; editTask.Sat = task.Sat; editTask.TaskId = task.TaskId; } else { //create a new task var newTaskSheet = new TimeSheet { EmployeeId = employeeDetails.Id, TaskId = task.TaskId, Sun = task.Sun, Mon = task.Mon, Tue = task.Tue, Wed = task.Wed, Thur = task.Thur, Fri = task.Fri, Sat = task.Sat }; newTmeSheetList.Add(newTaskSheet); } } if (newTmeSheetList.Any()) { foreach (var timesheet in newTmeSheetList) { employeeDetails.TimeSheets.Add(timesheet); } } } await this.db.SaveChangesAsync(); return(true); }
public async Task <TimeSheetVM> GetTimeSheetByEmployeeIdAsync(int empId) { TimeSheetVM timeSheetList = new TimeSheetVM(); var employeeTimesheet = await this.db.TimeSheets .Include(k => k.Employee) .Include(m => m.Task) .Where(r => r.EmployeeId == empId).ToListAsync(); foreach (var item in employeeTimesheet) { timeSheetList.TimeSheetDetailVM.Add(new TimeSheetDetailVM { Id = item.Id, TaskId = item.TaskId, TaskName = item.Task.Name, Sun = item.Sun, Mon = item.Mon, Tue = item.Tue, Wed = item.Wed, Thur = item.Thur, Fri = item.Fri, Sat = item.Sat }); } timeSheetList.EmployeeId = empId; timeSheetList.TotalSunEffort = timeSheetList.TimeSheetDetailVM.Sum(r => r.Sun); timeSheetList.TotalMonEffort = timeSheetList.TimeSheetDetailVM.Sum(r => r.Mon); timeSheetList.TotalTueEffort = timeSheetList.TimeSheetDetailVM.Sum(r => r.Tue); timeSheetList.TotalWedEffort = timeSheetList.TimeSheetDetailVM.Sum(r => r.Wed); timeSheetList.TotalThurEffort = timeSheetList.TimeSheetDetailVM.Sum(r => r.Thur); timeSheetList.TotalFriEffort = timeSheetList.TimeSheetDetailVM.Sum(r => r.Fri); timeSheetList.TotalSatEffort = timeSheetList.TimeSheetDetailVM.Sum(r => r.Sat); return(timeSheetList); }
public async Task <IActionResult> UpdateAsync(TimeSheetVM model) { await this.employeeService.UpdateAsync(model); return(Ok(true)); }