public IActionResult GetAllTeachersWithAssignedAssignment([FromBody] TeacherAssignmentModel model) { var assignedTeachers = _internshipAssignments.GetAllAssignedTeachersByAssigmentId(model.assignmentId); if (assignedTeachers == null) { return(BadRequest()); } var teachers = _teacherData.GetAllTeachers().ToList().Select(teacher => new ReturnAssignedTeacherData { Id = teacher.Id, Email = teacher.Email, EmployeeId = teacher.TeacherNumber, FirstName = teacher.FirstName, Name = teacher.Name, IsAssinged = assignedTeachers.Contains(teacher) }); return(Ok(teachers)); }
public async Task<IActionResult> UpdateTeacherStatus([FromBody] UpdateTeacherStatusModel model) { var teacher = await _userManager.FindByEmailAsync(model.LectorEmail); if (teacher == null) return Unauthorized(); var assignedTeachers = _internshipAssignments.GetAllAssignedTeachersByAssigmentId(model.AssignmentId); if (assignedTeachers.Count == 0) return BadRequest(); if(assignedTeachers.Count > 1) { bool teacherFound = false; foreach(User assignedTeacher in assignedTeachers) { if (assignedTeacher == teacher) teacherFound = true; } if (!teacherFound) return BadRequest(); try { TeacherStatus status; status = GetTeacherStatus(model.Status); _internshipAssignments.UpdateTeacherStatusAssignmentTeacher(teacher, model.AssignmentId, status, model.Message); var assignedTeacherObjects = _internshipAssignments.GetAssignedTeacherObjectsByAssignmentId(model.AssignmentId); bool allTeachersAgree = true; foreach(AssignedTeachers assigned in assignedTeacherObjects) { if (assigned.Status != status) allTeachersAgree = false; } if(allTeachersAgree) _internshipAssignments.UpdateTeacherStatusAssignment(model.AssignmentId, status); else _internshipAssignments.UpdateTeacherStatusAssignment(model.AssignmentId, TeacherStatus.Behandeling); return Ok(); } catch (ArgumentException e) { return BadRequest(); } } else { if (assignedTeachers[0] != teacher) return BadRequest(); try { TeacherStatus status; status = GetTeacherStatus(model.Status); _internshipAssignments.UpdateTeacherStatusAssignmentTeacher(teacher, model.AssignmentId, status, model.Message); _internshipAssignments.UpdateTeacherStatusAssignment(model.AssignmentId, status); return Ok(); } catch (ArgumentException e) { return BadRequest(); } } }