コード例 #1
0
ファイル: EmailCommandHandler.cs プロジェクト: yescent/emud
        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);
        }