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); }
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(); }