public async Task <bool> Handle(AtribuirFuncaoColaboradorCommand message, CancellationToken cancellationToken)
        {
            var success = await Validar(message);

            if (!success)
            {
                return(success);
            }
            if (!_colaboradorRepository.FuncaoExiste(message.NovaFuncao.Id))
            {
                await _mediatorHandler.PublicarNotificacao(new DomainNotification(message.MessageType, $"A função informada {message.NovaFuncao.Id}- {message.NovaFuncao.Descricao} não foi localizada no banco de dados!"));

                return(success);
            }
            else
            {
                var colaboradorDb = ObterColaboradorPorId(message, ref success);
                if (success)
                {
                    colaboradorDb.AtribuirFuncao(message.NovaFuncao);
                    success = await AlterarColaborador(colaboradorDb, message.MessageType);

                    if (success)
                    {
                        await _mediatorHandler.PublicarEvento(new Events.Colaborador.ColaboradorFuncaoAtribuidaEvent(colaboradorDb));
                    }
                }
            }
            return(success);
        }
예제 #2
0
 public async Task AtribuirFuncaoAoColaborador(Guid id, FuncaoViewModel funcao)
 {
     var colaborador           = _colaboradorRepository.GetById(id);
     var atribuidFuncaoCommand = new AtribuirFuncaoColaboradorCommand(colaborador, _mapper.Map <Funcao>(funcao));
     await _mediator.EnviarComando(atribuidFuncaoCommand);
 }