Esempio n. 1
0
        public async Task <Unit> Handle(DeleteEmailCommand command, CancellationToken cancellationToken)
        {
            _logger.LogDebug($"Handle DeleteEmailCommand:{JsonConvert.SerializeObject(command)}");

            var playerId      = command.PlayerId;
            var playerEmailId = command.PlayerEmailId;

            var playerEmail = await _playerEmailDomainService.Get(playerEmailId);

            if (playerEmail == null || playerEmail.PlayerId != playerId)
            {
                return(Unit.Value);
            }

            playerEmail.Status = EmailStatusEnum.除;
            await _playerEmailDomainService.Update(playerEmail);

            if (await Commit())
            {
                //TODO
                await _mudProvider.RemoveEmail(playerId, playerEmailId);

                await _bus.RaiseEvent(new DeletedEmailEvent(playerId, playerEmailId)).ConfigureAwait(false);
            }

            return(Unit.Value);
        }
Esempio n. 2
0
        public async Task DeleteEmail(DeleteEmailAction deleteEmailAction)
        {
            var result = await DoCommand(async() => {
                var playerId = _account.PlayerId;

                var command = new DeleteEmailCommand(playerId, deleteEmailAction.PlayerEmailId);
                await _bus.SendCommand(command);
            });
        }
        public void Handle_GivenInvalidId_ThrowsException()
        {
            var command = new DeleteEmailCommand
            {
                Id = 99
            };

            var handler = new DeleteEmailCommand.DeleteEmailCommandHandler(Context);

            Should.ThrowAsync <NotFoundException>(() =>
                                                  handler.Handle(command, CancellationToken.None));
        }
        public async Task Handle_GivenValidId_ShouldRemovePersistedEmail()
        {
            var command = new DeleteEmailCommand
            {
                Id = 1
            };

            var handler = new DeleteEmailCommand.DeleteEmailCommandHandler(Context);

            await handler.Handle(command, CancellationToken.None);

            var entity = Context.Emails.Find(command.Id);

            entity.ShouldBeNull();
        }