public async Task <IActionResult> InitializeTimetableForTestUsers([FromBody] StudentModel body) { _logger.LogInformation($"[TEST] Setting test timetable for test student: {body.Email}."); User user = await _userService.GetUserByEmailAsync(body.Email); if (user == null) { _logger.LogError($"[TEST] Test user with email: {body.Email} does not exist."); return(ErrorResponse($"User with email: {body.Email} does not exist.")); } var timetable = _schoolScheduleProxy.GetFromJsonFile("TestTimetable.json"); if (timetable == null) { return(ErrorResponse("Loading of test timetable failed.")); } FRITeam.Swapify.SwapifyBase.Entities.Timetable studentTimetable = await ConverterApiToDomain.ConvertTimetableForPersonalNumberAsync(timetable, _courseService); Student student = user.Student; if (student == null) { student = new Student { PersonalNumber = "000000", UserId = user.Id }; await _studentService.AddAsync(student); user.Student = student; await _studentService.UpdateStudentTimetableAsync(student, studentTimetable); await _userService.UpdateUserAsync(user); return(Ok(student.Timetable)); } if (student.PersonalNumber != null && student.PersonalNumber.Equals("000000")) { return(Ok(student.Timetable)); } else { student.PersonalNumber = "000000"; await _studentService.UpdateStudentTimetableAsync(student, studentTimetable); await _userService.UpdateUserAsync(user); return(Ok(student.Timetable)); } }
public async Task <IActionResult> SetStudentTimetableFromPersonalNumber([FromBody] StudentModel body) { _logger.LogInformation($"Setting timetable for student: {body.Email}."); User user = await _userService.GetUserByEmailAsync(body.Email); if (user == null) { _logger.LogError($"User with email: {body.Email} does not exist."); return(ErrorResponse($"User with email: {body.Email} does not exist.")); } var timetable = await _schoolScheduleProxy.GetByPersonalNumber(body.PersonalNumber); if (timetable == null) { return(ErrorResponse($"Student with number: {body.PersonalNumber} does not exist.")); } FRITeam.Swapify.SwapifyBase.Entities.Timetable studentTimetable = await ConverterApiToDomain.ConvertTimetableForPersonalNumberAsync(timetable, _courseService); Student student = user.Student; if (student == null) { student = new Student { PersonalNumber = body.PersonalNumber, UserId = user.Id }; await _studentService.AddAsync(student); user.Student = student; await _studentService.UpdateStudentTimetableAsync(student, studentTimetable); await _userService.UpdateUserAsync(user); return(Ok(student.Timetable)); } student.PersonalNumber = body.PersonalNumber; await _studentService.UpdateStudentTimetableAsync(student, studentTimetable); var requests = await _blockChangesService.FindWaitingStudentRequests(student.Id); foreach (var item in requests) { await _blockChangesService.CancelExchangeRequest(item); } await _userService.UpdateUserAsync(user); return(Ok(student.Timetable)); }