public bool EditarDA(Turmas tur)
        {
            SqlParameter[] paramsToSP = new SqlParameter[12];

            paramsToSP[0] = new SqlParameter("@id", tur.Id);
            paramsToSP[1] = new SqlParameter("@codigo", tur.Codigo);
            paramsToSP[2] = new SqlParameter("@descricao", tur.Descricao.ToUpper());
            paramsToSP[3] = new SqlParameter("@eventoid", tur.EventoId);
            paramsToSP[4] = new SqlParameter("@dtini", tur.DataInicial);
            paramsToSP[5] = new SqlParameter("@dtfim", tur.DataFinal);
            paramsToSP[6] = new SqlParameter("@nromax", tur.Nromax);
            paramsToSP[7] = new SqlParameter("@sala", tur.Sala);
            paramsToSP[8] = new SqlParameter("@horaini", tur.HoraIni);
            paramsToSP[9] = new SqlParameter("@horafim", tur.HoraFim);
            paramsToSP[10] = new SqlParameter("@diasemana", tur.DiaSemana.ToUpper());
            paramsToSP[11] = new SqlParameter("@pessoaid", tur.PessoaId);

            try
            {
                SqlHelper.ExecuteNonQuery(ConfigurationManager.ConnectionStrings["conexao"].ToString(), CommandType.StoredProcedure, "stp_update_turmas", paramsToSP);

                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
        public Int32 InserirDA(Turmas tur)
        {
            SqlParameter[] paramsToSP = new SqlParameter[11];

            paramsToSP[0] = new SqlParameter("@codigo", RetornaMaxCodigo());
            paramsToSP[1] = new SqlParameter("@descricao", tur.Descricao.ToUpper());
            paramsToSP[2] = new SqlParameter("@eventoid", tur.EventoId);
            paramsToSP[3] = new SqlParameter("@dtini", tur.DataInicial);
            paramsToSP[4] = new SqlParameter("@dtfim", tur.DataFinal);
            paramsToSP[5] = new SqlParameter("@nromax", tur.Nromax);
            paramsToSP[6] = new SqlParameter("@sala", tur.Sala);
            paramsToSP[7] = new SqlParameter("@horaini", tur.HoraIni);
            paramsToSP[8] = new SqlParameter("@horafim", tur.HoraFim);
            paramsToSP[9] = new SqlParameter("@diasemana", tur.DiaSemana.ToUpper());
            paramsToSP[10] = new SqlParameter("@pessoaid", tur.PessoaId);

            try
            {
                DataSet ds = SqlHelper.ExecuteDataset(ConfigurationManager.ConnectionStrings["conexao"].ToString(), CommandType.StoredProcedure, "stp_insert_turmas", paramsToSP);

                DataTable tabela = ds.Tables[0];

                int id = utils.ComparaIntComZero(tabela.Rows[0]["ID"].ToString());

                return id;
            }
            catch (Exception e)
            {
                return 0;
            }
        }
        public Int32 InserirBL(Turmas tur)
        {
            if (IsValid(tur))
            {
                TurmasDA turmasDA = new TurmasDA();

                return turmasDA.InserirDA(tur);
            }
            else
                return 0;
        }
        public bool ExcluirBL(Turmas tur)
        {
            if (tur.Id > 0)
            {
                TurmasDA turmasDA = new TurmasDA();

                return turmasDA.ExcluirDA(tur);
            }
            else
                return false;
        }
        public bool EditarBL(Turmas tur)
        {
            if (tur.Id > 0 && IsValid(tur))
            {
                TurmasDA turmasDA = new TurmasDA();

                return turmasDA.EditarDA(tur);
            }
            else
                return false;
        }
        protected void dtgTurmas_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            TurmasBL turBL = new TurmasBL();
            Turmas turmas = new Turmas();
            turmas.Id = utils.ComparaIntComZero(dtgTurmas.DataKeys[e.RowIndex][0].ToString());
            if (turBL.ExcluirBL(turmas))
                ExibirMensagem("Turma excluída com sucesso!");
            else
                ExibirMensagem("Não foi possível excluir o registro, existem registros dependentes");

            Pesquisar(null);
        }
        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            TurmasBL turBL = new TurmasBL();
            Turmas turmas = new Turmas();

            turmas.Id = utils.ComparaIntComZero(hfId.Value);
            turmas.Codigo = utils.ComparaIntComZero(lblcodigo.Text);
            turmas.Descricao = txtDescricao.Text;
            string diasSemana = "";
            foreach (ListItem item in ckbDiasSemana.Items)
            {
                diasSemana += item.Selected ? item.Value + "," : "";
            }
            turmas.DiaSemana = diasSemana;
            turmas.Nromax = utils.ComparaIntComZero(txtNroMax.Text);
            turmas.EventoId = utils.ComparaIntComZero(ddlEvento.SelectedValue);
            turmas.HoraFim = utils.ComparaDataComNull(txtHoraFim.Text);
            turmas.HoraIni = utils.ComparaDataComNull(txtHoraInicio.Text);
            turmas.DataFinal = Convert.ToDateTime(txtDtFim.Text);
            turmas.DataInicial = Convert.ToDateTime(txtDtInicio.Text);
            turmas.Sala = txtSala.Text;
            turmas.PessoaId = utils.ComparaIntComNull(ddlInstrutor.SelectedValue);

            if (turmas.Id > 0)
            {

                if (turBL.EditarBL(turmas))
                {
                    ExibirMensagem("Turma atualizada com sucesso !");
                    txtDescricao.Focus();
                }
                else
                    ExibirMensagem("Não foi possível atualizar a turma. Revise as informações.");

            }
            else
            {
                Int32 id_turma = 0;

                id_turma = turBL.InserirBL(turmas);
                hfId.Value = id_turma.ToString();
                if (id_turma > 0)
                {
                    ExibirMensagem("Turma gravada com sucesso !");
                    btnParticipantes.Visible = true;
                    txtDescricao.Focus();
                }
                else
                    ExibirMensagem("Não foi possível gravar a turma. Revise as informações.");
            }
        }
        public bool ExcluirDA(Turmas tur)
        {
            SqlParameter[] paramsToSP = new SqlParameter[1];

            paramsToSP[0] = new SqlParameter("@id", tur.Id);

            try
            {
                SqlHelper.ExecuteNonQuery(ConfigurationManager.ConnectionStrings["conexao"].ToString(), CommandType.StoredProcedure, "stp_delete_turmas", paramsToSP);

                return true;
            }
            catch (Exception e)
            {
                return false;
            }
        }
        private List<Turmas> CarregarObjTurmas(SqlDataReader dr)
        {
            List<Turmas> turmas = new List<Turmas>();
            PessoasDA pesDA = new PessoasDA();
            EventosDA eveDA = new EventosDA();

            while (dr.Read())
            {
                Turmas tur = new Turmas();
                tur.Id = int.Parse(dr["id"].ToString());
                tur.Codigo = int.Parse(dr["codigo"].ToString());
                tur.Descricao = dr["descricao"].ToString();
                tur.EventoId = int.Parse(dr["eventoid"].ToString());
                tur.DataInicial = Convert.ToDateTime(dr["dtini"].ToString());
                tur.DataFinal = Convert.ToDateTime(dr["dtfim"].ToString());
                tur.Nromax = utils.ComparaIntComZero(dr["nromax"].ToString());
                tur.HoraIni = utils.ComparaDataComNull(dr["horaini"].ToString());
                tur.HoraFim = utils.ComparaDataComNull(dr["horafim"].ToString());
                tur.Sala = dr["sala"].ToString();
                tur.DiaSemana = dr["diasemana"].ToString();
                tur.PessoaId = utils.ComparaIntComNull(dr["pessoaid"].ToString());

                int id = 0;

                if (tur.PessoaId != null)
                {
                    id = Convert.ToInt32(tur.PessoaId);
                    List<Pessoas> pes = pesDA.PesquisarDA(id);
                    Pessoas pessoa = new Pessoas();

                    foreach (Pessoas ltPes in pes)
                    {
                        pessoa.Id = ltPes.Id;
                        pessoa.Codigo = ltPes.Codigo;
                        pessoa.Nome = ltPes.Nome;
                    }

                    tur.Pessoa = pessoa;
                }

                id = Convert.ToInt32(tur.EventoId);
                List<Eventos> eve = eveDA.PesquisarDA(id);
                Eventos eventos = new Eventos();

                foreach (Eventos ltEve in eve)
                {
                    eventos.Id = ltEve.Id;
                    eventos.Codigo = ltEve.Codigo;
                    eventos.Descricao = ltEve.Descricao;
                }

                tur.Evento = eventos;

                turmas.Add(tur);
            }
            return turmas;
        }
        private List<TurmasParticipantes> CarregarObjTurmasParticipantes(SqlDataReader dr)
        {
            List<TurmasParticipantes> turmasParticipantes = new List<TurmasParticipantes>();

            while (dr.Read())
            {
                TurmasParticipantes turP = new TurmasParticipantes();
                PessoasDA pesDA = new PessoasDA();
                Turmas turmas = new Turmas();
                Pessoas pessoas = new Pessoas();

                turP.Id = int.Parse(dr["ID"].ToString());
                turP.PessoaId = int.Parse(dr["PESSOAID"].ToString());
                turP.TurmaId = int.Parse(dr["TURMASID"].ToString());

                //turmas
                turmas.Id =int.Parse(dr["ID_TUR"].ToString());
                turmas.Descricao = dr["DESCRICAO"].ToString();
                turP.Turma = turmas;

                //pessoas
                pessoas.Id = int.Parse(dr["ID_PES"].ToString());
                pessoas.Codigo = int.Parse(dr["P_COD"].ToString());
                pessoas.Nome = dr["NOME"].ToString();

                turP.Pessoa = pessoas;

                turmasParticipantes.Add(turP);
            }
            return turmasParticipantes;
        }
        private bool IsValid(Turmas tur)
        {
            bool valido;
            valido = tur.Descricao.Length <= 70 && tur.EventoId > 0;
            valido = valido && tur.Nromax > 0 && tur.DataInicial != null && tur.DataFinal != null;

            return valido;
        }