示例#1
0
        public async Task StorePlayerFeedback(AddPlayerFeedbackMessage message)
        {
            try
            {
                var playerFeedbackDto = message.ToDto();

                await _playerFeedbackRepository.Store(playerFeedbackDto);
            }
            catch (DuplicateFeedbackException ex)
            {
                _logger.LogWarning(ex.Message);
            }
        }
示例#2
0
        public async Task <Result> Send(PlayerFeedbackDto feedback)
        {
            var feedbackValidation =
                PlayerFeedback.Create(
                    feedback.SessionId,
                    feedback.PlayerId,
                    feedback.Rating,
                    feedback.Comment,
                    feedback.Timestamp
                    );

            if (!feedbackValidation.IsOk)
            {
                return(Result.Fail(feedbackValidation.Error));
            }

            await _messageSender.Send(AddPlayerFeedbackMessage.CreateFromDomain(feedbackValidation.Value));

            return(Result.Ok());
        }
            public async Task ReturnOk_WhenValidPlayerFeedbackIsGiven()
            {
                var addPlayerFeedbackMessage = new AddPlayerFeedbackMessage
                {
                    SessionId = _playerFeedback.SessionId,
                    PlayerId  = _playerFeedback.PlayerId,
                    Rating    = _playerFeedback.Rating,
                    Comment   = _playerFeedback.Comment,
                    Timestamp = _playerFeedback.Timestamp
                };

                _mockMessageSender
                .Setup(sender => sender.Send(It.IsAny <AddPlayerFeedbackMessage>()))
                .Verifiable();

                var feedbackSender = new FeedbackSender(_mockMessageSender.Object);

                var result = await feedbackSender.Send(_playerFeedback);

                _mockMessageSender.Verify(sender => sender.Send(addPlayerFeedbackMessage));

                Assert.True(result.IsOk);
            }