public async Task When_EvaluatingTutoringSessionAsTutor_Expect_Exception() { var evaluation = new TutoringSessionEvaluationDto { Evaluation = TutoringSessionEvaluationEnum.Good, Comment = "Lacked charisma" }; await Assert.ThrowsAsync <InvalidOperationException>(async() => await _tutoringSessionsService.EvaluateTutoringSession(3, evaluation) ); }
public async Task When_EvaluatingEvaluatedTutoringSession_Expect_Exception() { _currentUserServiceMock .Setup(s => s.GetUserId()) .Returns(_userManager.Users.First(u => u.Email == "*****@*****.**").Id); var evaluation = new TutoringSessionEvaluationDto { Evaluation = TutoringSessionEvaluationEnum.Good, Comment = "Lacked charisma" }; await Assert.ThrowsAsync <InvalidOperationException>(async() => await _tutoringSessionsService.EvaluateTutoringSession(2, evaluation) ); }
public async Task <IActionResult> EvaluateTutoringSession(int id, [FromBody] TutoringSessionEvaluationDto tutoringEvaluation) { try { var aggregate = await _tutoringSessionsService.EvaluateTutoringSession(id, tutoringEvaluation); Response.OnCompleted(async() => await _emailService.SendTutoringSessionEvaluatedEmail(aggregate) ); return(Ok()); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task When_EvaluatingTutoringSession_Expect_SessionEvaluated() { _currentUserServiceMock .Setup(s => s.GetUserId()) .Returns(_userManager.Users.First(u => u.Email == "*****@*****.**").Id); var evaluation = new TutoringSessionEvaluationDto { Evaluation = TutoringSessionEvaluationEnum.Good, Comment = "Lacked charisma" }; await _tutoringSessionsService.EvaluateTutoringSession(3, evaluation); var session = await _context.TutoringSessions.FirstAsync(ts => ts.Id == 3); Assert.Equal(TutoringSessionEvaluationEnum.Good, session.Evaluation); Assert.Equal("Lacked charisma", session.EvaluationComment); }
public async Task <SessionEvaluationEmailAggregate> EvaluateTutoringSession(int id, TutoringSessionEvaluationDto evaluationDto) { var session = await _tutoringSessionsRepository.GetById(id); ValidateSessionEvaluation(session); session.Evaluation = evaluationDto.Evaluation; session.EvaluationComment = evaluationDto.Comment; await _tutoringSessionsRepository.Update(session); return(new SessionEvaluationEmailAggregate { TutorEmail = session.Tutor.Email, StudentName = session.Student.FirstName + " " + session.Student.LastName, SessionDate = session.SessionDate, EvaluationDto = evaluationDto }); }