public async Task <IActionResult> SetLeaveApproverAsync(SetEmployeeApproverVM formData) { if (formData != null) { var Employee = await db.Employees.Include(a => a.LeaveApprovers).FirstOrDefaultAsync(a => a.Id == formData.EmployeeId); var employeeLeaveApprovers = Employee.LeaveApprovers; //try //{ // foreach (var item in Employee.LeaveApprovers) // { // var leavApprover = await db.LeaveApprovers.FindAsync(item.Id); // if (leavApprover != null) // { // db.LeaveApprovers.Remove(leavApprover); // await db.SaveChangesAsync(); // } // } //} //catch (Exception ex) //{ //} try { Employee.LeaveApprovers.Clear(); await db.SaveChangesAsync(); } catch (Exception ex) { } var newEmployeeApprovers = formData.LeaveApprovers.Where(a => a.IsChecked == true); foreach (var item in newEmployeeApprovers) { var approver = new LeaveApprover(); if (item.Department > 0) { approver.Department = (DepartmentCatagory)Enum.Parse(typeof(DepartmentCatagory), item.Department.ToString()); } approver.EmployeeId = item.EmployeeId; if (item.EmployeeRole == 0) { approver.EmployeeRole = EmployeeRole.Company; } if (item.EmployeeRole == 1) { approver.EmployeeRole = EmployeeRole.Department; } if (item.EmployeeRole == 2) { approver.EmployeeRole = EmployeeRole.Employee; } approver.Name = item.Name; db.LeaveApprovers.Add(approver); await db.SaveChangesAsync(); Employee.LeaveApprovers.Add(approver); await db.SaveChangesAsync(); } return(Json(new { isSuccess = true })); } return(Json(new { isSuccess = false })); }