public ParticipacaoAdicionadaEvent(PalestraId palestraId, FuncionarioId funcionarioId,
                                    StatusParticipacao status)
 {
     PalestraId    = palestraId;
     FuncionarioId = funcionarioId;
     Status        = status;
 }
        public void AdicionarParticipacao(FuncionarioId funcionarioId, StatusParticipacao status)
        {
            CheckRule(new ParticipacaoDuplicadaRule(_participacoes, funcionarioId));

            var participacao = new Participacao(funcionarioId, status);

            _participacoes.Add(participacao);

            CheckRule(new LimiteDeParticipacoesRule(_participacoes));
            AddDomainEvent(new ParticipacaoAdicionadaEvent(Id, funcionarioId, status));
        }
 public Participacao(FuncionarioId funcionarioId, StatusParticipacao status)
 {
     Id            = new ParticipacaoId();
     FuncionarioId = funcionarioId;
     Status        = status;
 }