public async Task <bool> Handle(AtribuirTipoPagamentoColaboradorCommand message, CancellationToken cancellationToken) { var success = await Validar(message); if (!success) { return(success); } var colaboradorDb = ObterColaboradorPorId(message, ref success); if (success) { if (await TipoPagamentoExiste(message.TiposPagamentoAdicionar, message)) { try { message.TiposPagamentoAdicionar.ForEach(item => { colaboradorDb.AtribuirTipoPagamento(item); }); _colaboradorRepository.AdicionarTiposPagamentos(colaboradorDb); if (await AlterarColaborador(colaboradorDb, message.MessageType)) { await _mediatorHandler.PublicarEvento(new Events.Colaborador.ColaboradorTipoPagamentoAtribuidoEvent(colaboradorDb)); success = true; } } catch (DomainException ex) { await _mediatorHandler.PublicarNotificacao(new DomainNotification(message.MessageType, ex.Message)); success = false; } } } return(success); }