public async Task RemoverTipoPagamentoDoColaborador(Guid id, IEnumerable <TipoPagamentoViewModel> tiposPagamento)
 {
     var colaborador         = _colaboradorRepository.GetById(id);
     var listaTiposPagamento = new List <TipoPagamento>(tiposPagamento.Select(s => _mapper.Map <TipoPagamento>(s)));
     var removerTipoPagamentoColaboradorCommand = new RemoverTipoPagamentoColaboradorCommand(colaborador, listaTiposPagamento);
     await _mediator.EnviarComando(removerTipoPagamentoColaboradorCommand);
 }
 public async Task RemoverTipoPagamentoDoColaborador(Guid id, TipoPagamentoViewModel tipoPagamento)
 {
     var colaborador         = _colaboradorRepository.GetById(id);
     var listaTiposPagamento = new List <TipoPagamento>
     {
         _mapper.Map <TipoPagamento>(tipoPagamento)
     };
     var adicionarTipoPagamentoCommand = new RemoverTipoPagamentoColaboradorCommand(colaborador, listaTiposPagamento);
     await _mediator.EnviarComando(adicionarTipoPagamentoCommand);
 }
        public async Task <bool> Handle(RemoverTipoPagamentoColaboradorCommand message, CancellationToken cancellationToken)
        {
            var success = await Validar(message);

            if (!success)
            {
                return(success);
            }
            var colaboradorDb = ObterColaboradorPorId(message, ref success);

            if (success)
            {
                if (await TipoPagamentoExiste(message.TiposPagamentoRemover, message))
                {
                    try
                    {
                        message.TiposPagamentoRemover.ForEach(item => { colaboradorDb.RemoverTipoPagamento(item); });
                        if (await AlterarColaborador(colaboradorDb, message.MessageType))
                        {
                            await _mediatorHandler.PublicarEvento(new Events.Colaborador.ColaboradorTipoPagamentoRemovidoEvent(colaboradorDb));
                        }
                        else
                        {
                            success = false;
                        }
                    }
                    catch (DomainException ex)
                    {
                        await _mediatorHandler.PublicarNotificacao(new DomainNotification(message.MessageType, ex.Message));

                        success = false;
                    }
                }
            }
            return(success);
        }