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