Beispiel #1
0
 protected void populaCategoria()
 {
     try
     {
         ddlCategoria.DataSource     = categBO.GetCategoriaDatas();
         ddlCategoria.DataTextField  = "Descricao";
         ddlCategoria.DataValueField = "Id";
         ddlCategoria.DataBind();
     }
     catch (DataAccessException ex)
     {
         throw ex;
     }
 }
Beispiel #2
0
 protected void Page_Load(object sender, EventArgs e)
 {
     try
     {
         CategoriaDataBO      boCategoriaDataList = new CategoriaDataBO();
         List <CategoriaData> listaCat            = boCategoriaDataList.GetCategoriaDatas();
         if (listaCat.Count == 0)
         {
             lblStatus.Text    = "Nenhuma Categoria de Datas cadastrada.";
             lblStatus.Visible = true;
         }
         else
         {
             grvListaCategoriaData.DataSource = listaCat;
             grvListaCategoriaData.DataBind();
         }
     }
     catch (BusinessData.DataAccess.DataAccessException ex)
     {
         Response.Redirect("~/Default/Erro.aspx?Erro=" + ex.Message);
     }
 }
Beispiel #3
0
    protected void grvListaCategoriaData_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        try
        {
            CategoriaDataBO categoriaDataList = new CategoriaDataBO();
            Guid            id = (Guid)grvListaCategoriaData.DataKeys[e.RowIndex].Value;

            categoriaDataList.DeleteCategoriaData(id);
            lblStatus.Text    = "Categoria de Datas excluída com sucesso.";
            lblStatus.Visible = true;

            grvListaCategoriaData.DataSource = categoriaDataList.GetCategoriaDatas();
            grvListaCategoriaData.DataBind();
        }
        catch (BusinessData.DataAccess.DataAccessException ex)
        {
            Response.Redirect("~/Default/Erro.aspx?Erro=" + ex.Message);
        }
        catch (SecurityException ex)
        {
            Response.Redirect("~/Default/Erro.aspx?Erro=" + ex.Message);
        }
    }
Beispiel #4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        cal = null;
        Guid idturma    = new Guid();
        bool mostraAval = true;

        if (Request.QueryString["id"] != null)
        {
            listCData = cdataBo.GetCategoriaDatas();
            try
            {
                idturma = new Guid(Request.QueryString["id"]);
                int           ano      = int.Parse(Request.QueryString["ano"]);
                int           semestre = int.Parse(Request.QueryString["sem"]);
                CalendariosBO calBO    = new CalendariosBO();
                cal = calBO.GetCalendarioByAnoSemestre(ano, semestre);
                string strProx = Request.QueryString["aval"];
                if (string.IsNullOrEmpty(strProx))
                {
                    mostraAval = false;
                }
            }
            catch (FormatException)
            {
                Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
            }

            Session["TurmaId"] = idturma;
            CategoriaAtividadeBO      cateBO          = new CategoriaAtividadeBO();
            List <CategoriaAtividade> listaAtividades = cateBO.GetCategoriaAtividade();
            AulaBO      AulaBO     = new AulaBO();
            List <Aula> listaAulas = null;
            try
            {
                listaAulas = AulaBO.GetAulas(idturma);
            }
            catch (Exception)
            {
                Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
            }
            Disciplina          d   = listaAulas[0].TurmaId.Disciplina;
            CategoriaDisciplina cat = d.Categoria;

            string sala   = Regex.Replace(listaAulas[0].TurmaId.Sala, "32/A", "32");
            string titulo = d.Cod + "-" + d.Cred + " " + d.Nome + " (" + listaAulas[0].TurmaId.Numero + ") - " + sala;//" "+facin;
            lblTitulo.Text = titulo;

            string shortTitle = "";
            foreach (string part in d.Nome.Split())
            {
                if (part.Length == 1 && part[0] != 'I')
                {
                    continue;
                }
                if (part == "de" || part == "do" || part == "da" || part == "em")
                {
                    continue;
                }
                if (part == "I" || part == "II" || part == "III" || part == "IV" || part == "V" ||
                    part == "A" || part == "B" || part == "C")
                {
                    shortTitle += part;
                }
                else
                {
                    shortTitle += char.ToUpper(part[0]);
                }
            }
            string st = shortTitle;

            string output = "BEGIN:VCALENDAR\n";
            output += "PRODID:-//SARC//" + d.Cod + "-" + d.Cred + " " + d.Nome + "//PT\n";
            output += "VERSION:2.0\n";
            output += "CALSCALE:GREGORIAN\n";
            output += "METHOD:PUBLISH\n";
            output += "X-WR-CALNAME:" + st + "\n";
            output += "X-WR-TIMEZONE:America/Sao_Paulo\n";
            output += "X-WR-CALDESC:" + st + "\n";

            DateTime hoje = DateTime.Now;

            DataTable tabela = new DataTable();

            AlocacaoBO alocBO = new AlocacaoBO();

            foreach (DataGridColumn coluna in dgAulas.Columns)
            {
                tabela.Columns.Add(coluna.HeaderText);
            }

            int     totalAulas = 1;
            DataRow dr;
            bool    notset = true;
            foreach (Aula aula in listaAulas)
            {
                string hi = Horarios.ParseToDateTime(aula.Hora).TimeOfDay.ToString().Substring(0, 5);
                string hf = Horarios.ParseToDateTime(aula.Hora).TimeOfDay.Add(TimeSpan.FromMinutes(90)).ToString().Substring(0, 5);
                dr              = tabela.NewRow();
                dr["#"]         = totalAulas++;
                dr["Dia"]       = DataHelper.GetDia(aula.Data.DayOfWeek);
                dr["Data"]      = aula.Data.Date.ToShortDateString();
                dr["Hora"]      = aula.Hora + "<br>" + hi + " - " + hf;
                dr["Descrição"] = aula.DescricaoAtividade;
                dr["Atividade"] = aula.CategoriaAtividade.Descricao;
                dr["Prox"]      = "";

                DateTime startDt = aula.Data.Add(Horarios.ParseToDateTime(aula.Hora).TimeOfDay).AddHours(3);
                DateTime endDt   = startDt.AddMinutes(90);

                List <BusinessData.Entities.Recurso> recAlocados = alocBO.GetRecursoAlocadoByAula(aula.Data, aula.Hora, (Guid)aula.Id);
                string aux     = "";
                string recHoje = "";
                shortTitle = st;
                foreach (var rec in recAlocados)
                {
                    if (aux != String.Empty)
                    {
                        aux += "<br/>" + rec.Descricao;
                    }
                    else
                    {
                        aux = rec.Descricao;
                        //Debug.WriteLine("Tipo recurso:" + rec.Tipo);
                        if (rec.Tipo == 'L' || rec.Tipo == 'A' || rec.Tipo == 'D')
                        {
                            recHoje     = rec.Descricao;
                            shortTitle += " " + recHoje.Split().Last();
                            break;
                        }
                    }
                }
                dr["Recursos"]  = aux;
                dr["CorDaData"] = aula.CategoriaAtividade.Cor.ToArgb();

                if (aula.Data.Date >= cal.InicioG2)
                {
                    dr["#"] = "";
                    totalAulas--;
                }

                Data data      = VerificaData(aula.Data.Date);
                bool diaLetivo = true;
                if (data != null)
                {
                    foreach (CategoriaData c in listCData)
                    {
                        if (c.Id == data.Categoria.Id)
                        {
                            if (!c.DiaLetivo)
                            {
                                dr["Descrição"] = c.Descricao + (aula.DescricaoAtividade != "Feriado" ? " (era " + aula.DescricaoAtividade + ")" : "");
                                dr["#"]         = "";
                                totalAulas--;
                                diaLetivo = false;
                                break;
                            }
                        }
                    }
                }
                //Debug.WriteLine("Cor aula: " + aula.CategoriaAtividade.Cor.ToString());
                tabela.Rows.Add(dr);

                if (recHoje == string.Empty)
                {
                    recHoje     = sala;
                    shortTitle += " " + recHoje;
                }

                if (diaLetivo)
                {
                    if (mostraAval && aula.CategoriaAtividade.Descricao != "Prova" && aula.CategoriaAtividade.Descricao != "Prova de Substituição" &&
                        aula.CategoriaAtividade.Descricao != "Prova de G2" && aula.CategoriaAtividade.Descricao != "Trabalho")
                    {
                        continue;
                    }
                    output += "BEGIN:VEVENT\n";
                    output += "DESCRIPTION: " + aula.DescricaoAtividade + "\n";
                    output += "SUMMARY: " + shortTitle + "\n";
                    output += string.Format("DTSTAMP:{0:yyyyMMddTHHmmssZ}\n", DateTime.Now);
//                    output += "DTSTART:"+startDt.Year+startDt.Month+startDt.Day+startDt.Hour+startDt.Minute+startDt.Second+"\n";
                    //output += "DTSTART:" + startDt.ToString() + "\n";
                    output += string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}\n", startDt);
                    output += string.Format("DTEND:{0:yyyyMMddTHHmmssZ}\n", endDt);
                    output += "LOCATION:" + recHoje + "\n";
                    output += "SEQUENCE:0\n";
                    output += "TRANSP:OPAQUE\n";
                    SHA256 sha      = SHA256.Create();
                    byte[] uidarray = sha.ComputeHash(Encoding.Unicode.GetBytes(aula.DescricaoAtividade + startDt.ToString() + shortTitle + endDt.ToString()));
                    string uid      = Convert.ToBase64String(uidarray);
                    output += "UID:" + uid + "\n";
                    output += "END:VEVENT\n";
                }
            }
            dgAulas.DataSource     = tabela;
            dgAulas.ItemDataBound += new DataGridItemEventHandler(dgAux_ItemDataBound);
            dgAulas.DataBind();

            output += "END:VCALENDAR\n";
            Response.AppendHeader("Content-Disposition", "attachment; filename=" + st + ".ics");
            Response.ContentType = "text/calendar";
            Response.Write(output);

            Response.End();
        }
    }
Beispiel #5
0
    protected void dgAulas_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
        {
            DropDownList ddlAtividade            = (DropDownList)e.Item.FindControl("ddlAtividade");
            Label        lblData                 = (Label)e.Item.FindControl("lblData");
            TextBox      txtDescricao            = (TextBox)e.Item.FindControl("txtDescricao");
            Label        lblDescData             = (Label)e.Item.FindControl("lblDescData");
            Label        lblCorDaData            = (Label)e.Item.FindControl("lblCorDaData");
            Label        lblRecursosSelecionados = (Label)e.Item.FindControl("lblRecursosSelecionados");
            Label        lblAulaId               = (Label)e.Item.FindControl("lblAulaId");
            Color        cor = argb[0];

            txtDescricao.Attributes.Add("onkeyup", "setDirtyFlag()");

            Label lbl = (Label)e.Item.FindControl("lblAula");
            lbl.Text = "";

            listCData = cdataBo.GetCategoriaDatas();
            List <Requisicao> listReq = reqBo.GetRequisicoesPorAula(new Guid(lblAulaId.Text), cal);



            DateTime dataAtual = Convert.ToDateTime(lblData.Text);

            ddlAtividade.DataValueField = "Id";
            ddlAtividade.DataTextField  = "Descricao";
            ddlAtividade.DataSource     = listaAtividades;
            ddlAtividade.DataBind();

            ddlAtividade.SelectedValue = categorias[0].ToString();

            List <CategoriaRecurso> listCatRecursos = categoriaRecursoBo.GetCategoriaRecursoSortedByUse();
            // listCatRecursos.Sort();
            CategoriaRecurso dummy = new CategoriaRecurso(dummyGuid, "Selecionar...");
            listCatRecursos.Insert(0, dummy);

            string recursos = "";
            foreach (Requisicao r in listReq)
            {
                if (recursos != String.Empty)
                {
                    recursos += "<br/>";
                }
                recursos += r.Prioridade + ": " + r.CategoriaRecurso.Descricao;
                listCatRecursos.Remove(listCatRecursos.Find(delegate(CategoriaRecurso cr)
                {
                    return(cr.Descricao == r.CategoriaRecurso.Descricao);
                }
                                                            ));
            }

            DropDownList ddlCategoriaRecurso = (DropDownList)e.Item.FindControl("ddlRecurso");
            if (semRecursos)
            {
                dgAulas.Columns[8].Visible  = false;
                dgAulas.Columns[9].Visible  = false;
                dgAulas.Columns[10].Visible = false;
                //ddlCategoriaRecurso.Visible = false;
                //lblRecursosSelecionados.Visible = false;
            }
            else
            {
                ddlCategoriaRecurso.SelectedIndex  = 0;
                ddlCategoriaRecurso.DataSource     = listCatRecursos;
                ddlCategoriaRecurso.DataTextField  = "Descricao";
                ddlCategoriaRecurso.DataValueField = "Id";
                ddlCategoriaRecurso.DataBind();
            }

//            ddlCategoriaRecurso.Items.Remove("Laboratório");

            lblRecursosSelecionados.Text = recursos;

            //Data data = null;
            //verifica as datas para pintar as linhas
            if ((dataAtual >= cal.InicioG2))
            {
                e.Item.BackColor = Color.LightGray;
            }
            else
            {
                Data data = VerificaData(dataAtual);
                if (data != null)
                {
                    foreach (CategoriaData c in listCData)
                    {
                        if (c.Id == data.Categoria.Id)
                        {
                            if (!c.DiaLetivo)
                            {
                                e.Item.BackColor  = c.Cor;
                                e.Item.Enabled    = false;
                                txtDescricao.Text = c.Descricao;
                                lblCorDaData.Text = "True";
                                break;
                            }
                            else
                            {
                                facin = (bool)Session["facin"];
                                if (facin)
                                {
                                    lblDescData.Text  = c.Descricao;
                                    txtDescricao.Text = c.Descricao;                                    // + " "+facin; // + " - " + txtDescricao.Text;
                                    //txtDescricao.Text = txtDescricao.Text;
                                    e.Item.BackColor  = c.Cor;
                                    lblCorDaData.Text = "True";
                                }
                                else
                                {
                                    e.Item.BackColor  = cor;
                                    lblCorDaData.Text = "False";
                                }
                                lbl.Text = (cont++).ToString();
                                break;
                            }
                        }
                    }
                }
                else
                {
                    e.Item.BackColor  = cor;
                    lblCorDaData.Text = "False";
                    lbl.Text          = (cont++).ToString();
                }
            }

            categorias.RemoveAt(0);
            argb.RemoveAt(0);
        }
    }
Beispiel #6
0
    protected void dgAulas_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
        {
            DropDownList ddlAtividade        = (DropDownList)e.Item.FindControl("ddlAtividade");
            Label        lblData             = (Label)e.Item.FindControl("lblData");
            TextBox      txtDescricao        = (TextBox)e.Item.FindControl("txtDescricao");
            Label        lblDescData         = (Label)e.Item.FindControl("lblDescData");
            Label        lblCorDaData        = (Label)e.Item.FindControl("lblCorDaData");
            Label        lblRecursosAlocados = (Label)e.Item.FindControl("lblRecursosAlocados");
            //lblRecursosAlocados.ReadOnly = true;
            Label lblRecursosAlocadosId = (Label)e.Item.FindControl("lblRecursosAlocadosId");
            Label lblAulaId             = (Label)e.Item.FindControl("lblAulaId");
            Label lblAula = (Label)e.Item.FindControl("lblAula");
            Label lblHora = (Label)e.Item.FindControl("lblHora");

            Panel        pnRecursos  = (Panel)e.Item.FindControl("pnRecursos");
            HtmlTable    tabRecursos = (HtmlTable)e.Item.FindControl("tabRecursos");
            int          i           = tabRecursos.Rows[0].Cells[0].Controls.Count;
            CheckBoxList cbRecursos  = (CheckBoxList)tabRecursos.Rows[0].Cells[0].Controls[1];

            ImageButton butDel    = (ImageButton)e.Item.FindControl("butDeletar");
            ImageButton butTransf = (ImageButton)e.Item.FindControl("butTransferir");
            ImageButton butTrocar = (ImageButton)e.Item.FindControl("butTrocar");

            //CheckBoxList cbRecursos = (CheckBoxList) tabRecursos.FindControl("cbRecursos");

            //Label tmp2 = new Label();
            //tmp2.Text = "boo";
            //pnRecursos.Controls.Add(tmp2);
            //Label tmp3 = new Label();
            //tmp3.Text = "boo2";
            //pnRecursos.Controls.Add(tmp3);
            //pnRecursos.BackColor = Color.Red;
            Color cor = argb[0];

            //txtDescricao.Attributes.Add("onkeyup", "setDirtyFlag()");
            //string call = "testAlert(this," + lblAula.Text + ")";
            //txtDescricao.Attributes.Add("onkeyup", call);
            //txtDescricao.Attributes.Add("onkeyup", "this.className='changed'");

            Label lbl = (Label)e.Item.FindControl("lblAula");
            lbl.Text = "";

            listCData = cdataBo.GetCategoriaDatas();

            DateTime dataAtual = Convert.ToDateTime(lblData.Text);

            List <Recurso> livres = recursosBO.GetRecursosDisponiveis(dataAtual, lblHora.Text);
            livres.Sort();
            Recurso dummy = new Recurso();
            dummy.Descricao = "Selecionar...";
            dummy.Id        = dummyGuid;
            livres.Insert(0, dummy);
            DropDownList ddlDisponiveis = (DropDownList)e.Item.FindControl("ddlDisponiveis");
            ddlDisponiveis.DataValueField = "Id";
            ddlDisponiveis.DataTextField  = "Descricao";
            ddlDisponiveis.DataSource     = livres;
            ddlDisponiveis.DataBind();

            ddlAtividade.DataValueField = "Id";
            ddlAtividade.DataTextField  = "Descricao";
            ddlAtividade.DataSource     = listaAtividades;
            ddlAtividade.DataBind();

            ddlAtividade.SelectedValue = categorias[0].ToString();

            //Data data = null;
            //verifica as datas para pintar as linhas

            // Associa a chamada da funçao Javascript para setar a dirty flag + trocar cor
            string num = cont2.ToString();
            if (cont2++ < 10)
            {
                num = "0" + num;
            }
            string call = "testAlert(this,'" + num + "')";
            txtDescricao.Attributes.Add("onkeyup", call);

            if ((dataAtual >= cal.InicioG2))
            {
                e.Item.BackColor = Color.LightGray;
            }
            else
            {
                Data data = VerificaData(dataAtual);
                if (data != null)
                {
                    foreach (CategoriaData c in listCData)
                    {
                        if (c.Id == data.Categoria.Id)
                        {
                            if (!c.DiaLetivo)
                            {
                                e.Item.BackColor  = c.Cor;
                                e.Item.Enabled    = false;
                                lblCorDaData.Text = "True";
                                txtDescricao.Text = c.Descricao;
                            }
                            else
                            {
                                facin = (bool)Session["facin"];
                                if (facin)
                                {
                                    lblDescData.Text  = c.Descricao;
                                    txtDescricao.Text = c.Descricao;                                    // + " "+facin; // + " - " + txtDescricao.Text;
                                    //txtDescricao.Text = txtDescricao.Text;
                                    e.Item.BackColor  = c.Cor;
                                    lblCorDaData.Text = "True";
                                }
                                else
                                {
                                    e.Item.BackColor  = cor;
                                    lblCorDaData.Text = "False";
                                }
                                lbl.Text = (cont++).ToString();
                                break;
                            }

                            /*else
                             * {
                             *  lblDescData.Text = c.Descricao;
                             *  txtDescricao.Text = c.Descricao + "\n" + txtDescricao.Text;
                             * }*/
                        }
                    }
                }
                else
                {
                    e.Item.BackColor  = cor;
                    lblCorDaData.Text = "False";
                    lbl.Text          = (cont++).ToString();
                    // Associa a chamada da funçao Javascript para setar a dirty flag + trocar cor

                    /*string num = cont.ToString();
                     * if (cont < 10)
                     *  num = "0" + num;
                     * string call = "testAlert(this,'" + num + "')";
                     * txtDescricao.Attributes.Add("onkeyup", call);
                     */
                }
            }

            AtualizaComponentes(e.Item, lblData.Text, lblHora.Text, lblAulaId.Text);

            /*
             */

            categorias.RemoveAt(0);
            argb.RemoveAt(0);
        }
    }
Beispiel #7
0
    protected void dgAulas_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
        {
            DropDownList ddlAtividade            = (DropDownList)e.Item.FindControl("ddlAtividade");
            Label        lblData                 = (Label)e.Item.FindControl("lblData");
            TextBox      txtDescricao            = (TextBox)e.Item.FindControl("txtDescricao");
            Label        lblDescData             = (Label)e.Item.FindControl("lblDescData");
            Label        lblCorDaData            = (Label)e.Item.FindControl("lblCorDaData");
            Label        lblRecursosSelecionados = (Label)e.Item.FindControl("lblRecursosSelecionados");
            Label        lblAulaId               = (Label)e.Item.FindControl("lblAulaId");
            Color        cor = argb[0];

            listCData = cdataBo.GetCategoriaDatas();
            List <Requisicao> listReq = reqBo.GetRequisicoesPorAula(new Guid(lblAulaId.Text), cal);

            string recursos = "";

            foreach (Requisicao r in listReq)
            {
                recursos += r.CategoriaRecurso.Descricao + ", ";
            }

            lblRecursosSelecionados.Text = recursos;

            DateTime dataAtual = Convert.ToDateTime(lblData.Text);

            ddlAtividade.DataValueField = "Id";
            ddlAtividade.DataTextField  = "Descricao";
            ddlAtividade.DataSource     = listaAtividades;
            ddlAtividade.DataBind();

            ddlAtividade.SelectedValue = categorias[0].ToString();

            Data data = null;
            //verifica as data para pintar as linhas
            if ((dataAtual >= cal.InicioG2))
            {
                e.Item.BackColor = Color.LightGray;
            }
            else if (VerificaData(dataAtual))
            {
                foreach (Data d in cal.Datas)
                {
                    if (d.Date == dataAtual)
                    {
                        data = d;
                    }
                }
                foreach (CategoriaData c in listCData)
                {
                    if (c.Id == data.Categoria.Id)
                    {
                        if (!c.DiaLetivo)
                        {
                            e.Item.BackColor  = c.Cor;
                            e.Item.Enabled    = false;
                            txtDescricao.Text = c.Descricao;
                            lblCorDaData.Text = "True";
                        }
                        else
                        {
                            lblDescData.Text  = c.Descricao;
                            txtDescricao.Text = c.Descricao + "\n" + txtDescricao.Text;
                            e.Item.BackColor  = c.Cor;
                            lblCorDaData.Text = "True";
                        }
                    }
                }
            }
            else
            {
                e.Item.BackColor  = cor;
                lblCorDaData.Text = "False";
            }

            categorias.RemoveAt(0);
            argb.RemoveAt(0);

            Label lbl = (Label)e.Item.FindControl("lblAula");
            lbl.Text = (cont++).ToString();
        }
    }
Beispiel #8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        cal = null;
        Guid idturma    = new Guid();
        bool mostraProx = true;

        if (Request.QueryString["id"] != null)
        {
            listCData = cdataBo.GetCategoriaDatas();
            try
            {
                idturma = new Guid(Request.QueryString["id"]);
                int           ano      = int.Parse(Request.QueryString["ano"]);
                int           semestre = int.Parse(Request.QueryString["sem"]);
                CalendariosBO calBO    = new CalendariosBO();
                cal = calBO.GetCalendarioByAnoSemestre(ano, semestre);
                string strProx = Request.QueryString["prox"];
                if (string.IsNullOrEmpty(strProx))
                {
                    mostraProx = false;
                }
            }
            catch (FormatException)
            {
                Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
            }

            Session["TurmaId"] = idturma;
            CategoriaAtividadeBO      cateBO          = new CategoriaAtividadeBO();
            List <CategoriaAtividade> listaAtividades = cateBO.GetCategoriaAtividade();
            AulaBO      AulaBO     = new AulaBO();
            List <Aula> listaAulas = null;
            try
            {
                listaAulas = AulaBO.GetAulas(idturma);
            }
            catch (Exception)
            {
                Response.Redirect("~/Default/Erro.aspx?Erro=Codigo de turma inválido!");
            }
            Disciplina          d   = listaAulas[0].TurmaId.Disciplina;
            CategoriaDisciplina cat = d.Categoria;

            string sala   = Regex.Replace(listaAulas[0].TurmaId.Sala, "32/A", "32");
            string titulo = d.Cod + "-" + d.Cred + " " + d.Nome + " (" + listaAulas[0].TurmaId.Numero + ") - " + sala;//" "+facin;
            lblTitulo.Text = titulo;

            DateTime hoje = DateTime.Now;
            //           if (mostraProx)
            //               lblProx.Text = "26/08/2019 [QUA LM] - Apresentação (Sala de aula)";

            DataTable tabela = new DataTable();

            AlocacaoBO alocBO = new AlocacaoBO();

            foreach (DataGridColumn coluna in dgAulas.Columns)
            {
                tabela.Columns.Add(coluna.HeaderText);
            }
            //            tabela.Columns.Add("Recursos");

            int     totalAulas = 1;
            DataRow dr;
            bool    notset = true;
            foreach (Aula aula in listaAulas)
            {
                string hi = Horarios.ParseToDateTime(aula.Hora).TimeOfDay.ToString().Substring(0, 5);
                string hf = Horarios.ParseToDateTime(aula.Hora).TimeOfDay.Add(TimeSpan.FromMinutes(90)).ToString().Substring(0, 5);
                dr              = tabela.NewRow();
                dr["#"]         = totalAulas++;
                dr["Dia"]       = DataHelper.GetDia(aula.Data.DayOfWeek);
                dr["Data"]      = aula.Data.Date.ToShortDateString();
                dr["Hora"]      = aula.Hora + "<br>" + hi + " - " + hf;
                dr["Descrição"] = aula.DescricaoAtividade;
                dr["Atividade"] = aula.CategoriaAtividade.Descricao;
                dr["Prox"]      = "";

                List <BusinessData.Entities.Recurso> recAlocados = alocBO.GetRecursoAlocadoByAula(aula.Data, aula.Hora, (Guid)aula.Id);
                //                dr["Recursos"] = "";
                string aux     = "";
                string recHoje = "";
                foreach (var rec in recAlocados)
                {
                    if (aux != String.Empty)
                    {
                        aux += "<br/>" + rec.Descricao;
                    }
                    else
                    {
                        aux = rec.Descricao;
                        //Debug.WriteLine("Tipo recurso:" + rec.Tipo);
                        if (rec.Tipo == 'L' || rec.Tipo == 'A' || rec.Tipo == 'D' || rec.Tipo == 'X')
                        {
                            recHoje = rec.Descricao;
                        }
                    }
                }
                dr["Recursos"]  = aux;
                dr["CorDaData"] = aula.CategoriaAtividade.Cor.ToArgb();

                if (aula.Data.Date >= cal.InicioG2)
                {
                    dr["#"] = "";
                    totalAulas--;
                }

                Data data = VerificaData(aula.Data.Date);
                if (data != null)
                {
                    foreach (CategoriaData c in listCData)
                    {
                        if (c.Id == data.Categoria.Id)
                        {
                            if (!c.DiaLetivo)
                            {
                                dr["Descrição"] = c.Descricao + (aula.DescricaoAtividade != "Feriado" ? " (era " + aula.DescricaoAtividade + ")" : "");
                                dr["#"]         = "";
                                totalAulas--;
                                break;
                            }
                        }
                    }
                }
                //Debug.WriteLine("Cor aula: " + aula.CategoriaAtividade.Cor.ToString());
                tabela.Rows.Add(dr);

                if (recHoje == string.Empty)
                {
                    recHoje = sala;
                }

                if (notset)
                {// && hoje.Date == aula.Data.Date)
                    //Debug.WriteLine("Aula: " + aula.Data.ToString() + " - hoje: "+hoje.ToString());
                    switch (aula.Hora)
                    {
                    case "AB":
                        aula.Data = aula.Data.AddHours(8);
                        break;

                    case "CD":
                        aula.Data = aula.Data.AddHours(9).AddMinutes(45);
                        break;

                    case "EX":
                        aula.Data = aula.Data.AddHours(11).AddMinutes(30);
                        break;

                    case "FG":
                        aula.Data = aula.Data.AddHours(14);
                        break;

                    case "HI":
                        aula.Data = aula.Data.AddHours(15).AddMinutes(45);
                        break;

                    case "JK":
                        aula.Data = aula.Data.AddHours(17).AddMinutes(30);
                        break;

                    case "LM":
                        aula.Data = aula.Data.AddHours(19).AddMinutes(15);
                        break;

                    case "NP":
                        aula.Data = aula.Data.AddHours(21).AddMinutes(0);
                        break;
                    }
                    long tickDiff = aula.Data.Ticks - hoje.Ticks;
                    //Debug.WriteLine("Tickdiff: "+tickDiff);
//                    hoje.
                    TimeSpan ts = TimeSpan.FromTicks(tickDiff);
                    //Debug.WriteLine("Timespan diff: " + ts.Duration().TotalHours);
                    if (tickDiff >= 0 || ts.Duration().TotalHours < 1)
                    {
                        lblProx.Text = aula.Data.Date.ToShortDateString() + " [" + dr["Dia"] + " " + aula.Hora + "] - " + aula.DescricaoAtividade
                                       + " (" + recHoje + ")";
                        TimeSpan diff        = aula.Data.Subtract(hoje);
                        int      roundedDays = (int)Math.Round(diff.TotalDays);
//                        lblProx.Text += diff.TotalDays + " - " + diff.TotalHours + " - " + diff.TotalMinutes + " -> "+Math.Round(diff.TotalDays);
                        //lblProx.Text += " -> " + aula.Data.ToString() + " - " + hoje.ToString();
                        /**/
                        if (roundedDays > 0)
                        {
                            if (roundedDays == 1)
                            {
                                lblProx.Text += " - amanhã";
                            }
                            else
                            {
                                lblProx.Text += " - daqui a " + roundedDays + " dias";
                            }
                        }
                        else if (diff.Hours > 0)
                        {
                            lblProx.Text += " - começa em " + diff.Hours + " hora" + (diff.Hours > 1 ? "s" : "");
                        }
                        else if (diff.Minutes > 0)
                        {
                            lblProx.Text += " - começa em " + diff.Minutes + " minuto" + (diff.Minutes > 1 ? "s" : "");
                        }
                        else if (diff.Minutes < 0)
                        {
                            lblProx.Text += " - começou há " + (-diff.Minutes) + " minuto" + (diff.Minutes < 1 ? "s" : "");
                        }
                        /**/

                        //lblProx.Text += " - " + diff.Days + " dias, " + diff.Hours + " horas, " + diff.Minutes + " minutos";
                        dr["Prox"] = "X"; // marca como a próxima aula na tabela
                        if (!mostraProx)
                        {
                            lblProx.Text = "";
                        }
                        else
                        {
                            // Se prox estiver ativo, oculta a grade e o título
                            dgAulas.Visible   = false;
                            lblTitulo.Visible = false;
                            break;
                        }
                        notset = false;
                    }
                }
            }
            if (lblProx.Text == String.Empty && mostraProx)
            {
                dgAulas.Visible   = false;
                lblTitulo.Visible = false;
                lblProx.Text      = "Não há mais atividades";
            }
            dgAulas.DataSource     = tabela;
            dgAulas.ItemDataBound += new DataGridItemEventHandler(dgAux_ItemDataBound);
            dgAulas.DataBind();
        }
    }