public async Task EndTrainingSessionAsync_Should_Fail_Due_To_Unknown_TrainingSession_Id() { EndTrainingSessionRequest endTrainingSessionRequest = EndTrainingSessionRequest(Guid.NewGuid()); EndTrainingSessionResponse endTrainingSessionResponse = await TrainingSessionService.EndTrainingSessionAsync(endTrainingSessionRequest); Assert.IsFalse(endTrainingSessionResponse.Success); Assert.AreEqual("Training session does not exist.", endTrainingSessionResponse.Message); }
public async Task EndTrainingSessionAsync_Should_Successfully_End_The_TrainingSession() { StartTrainingSessionRequest startTrainingSessionRequest = StartTrainingSessionRequest(TrainingRoomId, UserId); StartTrainingSessionResponse startTrainingSessionResponse = await TrainingSessionService.StartTrainingSessionAsync(startTrainingSessionRequest); Guid trainingSessionId = startTrainingSessionResponse.TrainingSession.Id; EndTrainingSessionRequest endTrainingSessionRequest = EndTrainingSessionRequest(trainingSessionId); EndTrainingSessionResponse endTrainingSessionResponse = await TrainingSessionService.EndTrainingSessionAsync(endTrainingSessionRequest); Assert.IsTrue(endTrainingSessionResponse.Success); }
/// <inheritdoc cref="ITrainingRoomService.EndTrainingSessionAsync(EndTrainingSessionRequest)"/> public async Task <EndTrainingSessionResponse> EndTrainingSessionAsync(EndTrainingSessionRequest endTrainingSessionRequest) { Expression <Func <TrainingSession, bool> > predicate = trs => trs.Id.Equals(endTrainingSessionRequest.TrainingSessionId); if (!await _trainingSessionRepository.ExistsAsync(predicate)) { return(new EndTrainingSessionResponse(endTrainingSessionRequest.Id, "Training session does not exist.")); } TrainingSession trainingSession = await _trainingSessionRepository.FindSingleByExpressionAsync(predicate); if (trainingSession.EndedTimestamp != default) { return(new EndTrainingSessionResponse(endTrainingSessionRequest.Id, "Training session was already ended.")); } trainingSession.EndTrainingSession(); await _trainingSessionRepository.UpdateAsync(trainingSession); return(new EndTrainingSessionResponse(endTrainingSessionRequest.Id, "Successfully ended the training session.", true)); }