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));
        }
示例#2
0
        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();
                }
            }
            
        }