Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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));
        }