protected void rptDocentes_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        long tud_id       = Convert.ToInt64(((Label)e.Item.FindControl("lbltud_id")).Text);
        byte posicao      = Convert.ToByte(((Label)e.Item.FindControl("lblposicao")).Text);
        int  qtdedocentes = Convert.ToInt32(((Label)e.Item.FindControl("lblqtdedocentes")).Text);
        int  tds_id       = Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "tds_id"));

        GestaoEscolar.WebControls.ControleVigenciaDocentes.ControleVigenciaDocentes UCControleVigenciaDocentes =
            (GestaoEscolar.WebControls.ControleVigenciaDocentes.ControleVigenciaDocentes)e.Item.FindControl("UCControleVigenciaDocentes");

        TUR_Turma_Docentes_Disciplina entity = listTurmaDocentes.Find(p => (p.entDocente.tud_id == tud_id && p.entDocente.tdt_posicao == posicao && p.entDocente.tdt_situacao == 1));

        UCControleVigenciaDocentes.CarregarDocente
            (entity.doc_nome, posicao, qtdedocentes, tud_id, ref dtDocentesEscola, tds_id
            , escola_esc_id, escola_uni_id, professorEspecialista, escola_bloqueioAtribuicaoDocente, ref DtVigenciasDocentes);
    }
    /// <summary>
    /// Adiciona nas listas as entidades da disciplina da linha atual.
    /// </summary>
    /// <param name="rptItem">recebe o Item</param>
    /// <param name="tud_codigo">código da turma disciplina</param>
    /// <param name="tud_vagas">quantidade de vagas turma disciplina</param>
    /// <param name="tud_minimoMatriculados">quantidade mínima de vagas turma disciplina</param>
    /// <param name="tud_duracao">Disciplina duração</param>
    /// <returns>As listas de entidades com as discplinas a serem salvas</returns>
    private CadastroTurmaDisciplina AdicionaDisciplina
    (
        RepeaterItem rptItem
        , string tud_codigo
        , int tud_vagas
        , int tud_minimoMatriculados
        , byte tud_duracao
    )
    {
        bool tud_disciplinaEspecial = false;

        CheckBox chkAlunoDef = (CheckBox)rptItem.FindControl("chkAlunoDef");

        if (chkAlunoDef != null)
        {
            tud_disciplinaEspecial = chkAlunoDef.Checked;
        }

        // Declarando variáveis que receberá dados do grid
        Int32 tud_id = String.IsNullOrEmpty(((Label)rptItem.FindControl("lblTud_ID")).Text) ? -1 : Convert.ToInt32(((Label)rptItem.FindControl("lblTud_ID")).Text);

        // Adicionando na entidades os valores a ser salvo.
        TUR_TurmaDisciplina ent = new TUR_TurmaDisciplina
        {
            tud_tipo = String.IsNullOrEmpty(((Label)rptItem.FindControl("lblCrd_Tipo")).Text) ? new byte() : Convert.ToByte(((Label)rptItem.FindControl("lblCrd_Tipo")).Text)
            ,
            tud_global = false
            ,
            tud_nome = ((Label)rptItem.FindControl("lblDis_Nome")).Text
            ,
            tud_codigo = tud_codigo
            ,
            tud_id = tud_id
            ,
            tud_situacao = (byte)TurmaDisciplinaSituacao.Ativo
            ,
            tud_cargaHorariaSemanal = String.IsNullOrEmpty(((TextBox)rptItem.FindControl("txtAulaSemanal")).Text) ? 0 : Convert.ToInt32(((TextBox)rptItem.FindControl("txtAulaSemanal")).Text)
            ,
            tud_multiseriado = false
            ,
            tud_vagas = tud_vagas
            ,
            tud_minimoMatriculados = tud_minimoMatriculados
            ,
            tud_duracao = tud_duracao
            ,
            tud_modo = (byte)TurmaDisciplinaModo.Normal
            ,
            tud_aulaForaPeriodoNormal = false
            ,
            tud_disciplinaEspecial = tud_disciplinaEspecial
            ,
            tud_semProfessor = ((CheckBox)rptItem.FindControl("chkSemDocente")).Checked
            ,
            IsNew = tud_id <= 0
        };

        // Adicionando valores na entidade de relacionemento.
        TUR_TurmaDisciplinaRelDisciplina relDis = new TUR_TurmaDisciplinaRelDisciplina
        {
            dis_id = Convert.ToInt32(((Label)rptItem.FindControl("lblDis_ID")).Text)
            ,
            tud_id = ent.tud_id
            ,
            IsNew = tud_id <= 0
        };

        List <TUR_TurmaDisciplinaCalendario> turCal = AdicionaPeriodos(rptItem, ent);
        // TUR_TurmaDocente doc = AdicionaDocentes(rptItem, ent);

        // Setar cde_id = id do grupo de disciplinas eletivas.
        string id     = ((Label)rptItem.FindControl("lblCde_id")).Text;
        Int32  cde_id = -1;

        if (!String.IsNullOrEmpty(id))
        {
            cde_id = Convert.ToInt32(id);
        }

        // Avaliações que não serão avaliadas.
        CheckBoxList chkList = (CheckBoxList)rptItem.FindControl("chkAvaliacoesPeriodicas");
        List <TUR_TurmaDisciplinaNaoAvaliado> lista =
            (from ListItem it in chkList.Items
             where it.Selected
             select new TUR_TurmaDisciplinaNaoAvaliado
        {
            tud_id = ent.tud_id
            ,
            fav_id = Convert.ToInt32(it.Value.Split(';')[0])
            ,
            ava_id = Convert.ToInt32(it.Value.Split(';')[1])
        }
            ).ToList();

        Repeater rptDocentes = (Repeater)rptItem.FindControl("rptDocentes");
        List <TUR_Turma_Docentes_Disciplina> listDocentesPosicoes = new List <TUR_Turma_Docentes_Disciplina>();

        foreach (RepeaterItem itemD in rptDocentes.Items)
        {
            GestaoEscolar.WebControls.ControleVigenciaDocentes.ControleVigenciaDocentes UCControleVigenciaDocentes =
                (GestaoEscolar.WebControls.ControleVigenciaDocentes.ControleVigenciaDocentes)itemD.FindControl("UCControleVigenciaDocentes");
            byte posicao = Convert.ToByte(((Label)itemD.FindControl("lblposicao")).Text);

            UCControleVigenciaDocentes.RetornaDocentesPosicao(ref listDocentesPosicoes, posicao, ent.tud_id);
        }

        return(new CadastroTurmaDisciplina
        {
            entTurmaDisciplina = ent
            ,
            entTurmaDiscRelDisciplina = relDis
            ,
            listaTurmaDocente = listDocentesPosicoes
            ,
            entTurmaCalendario = turCal
            ,
            cde_id = cde_id
            ,
            listaAvaliacoesNaoAvaliar = lista
        });
    }