public async Task StorePlayerFeedback(AddPlayerFeedbackMessage message) { try { var playerFeedbackDto = message.ToDto(); await _playerFeedbackRepository.Store(playerFeedbackDto); } catch (DuplicateFeedbackException ex) { _logger.LogWarning(ex.Message); } }
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); }