예제 #1
0
 protected void btn_get_Click(object sender, EventArgs e)
 {
     /*RecursosBO bo = new RecursosBO();
      * List<Recurso> lista = new List<Recurso>();
      * List<Recurso> lista2 = new List<Recurso>();
      * lista = bo.GetRecursosAlocados();
      * DateTime dt = Convert.ToDateTime(txtData.Text);
      * lista2 = bo.GetRecursosDisponiveis(dt, txtHorario.Text);
      *
      * lblstatus.Text = "Deu certo";*/
     ControleCalendario calendarios = new ControleCalendario();
     Calendario         cal         = calendarios.GetCalendario(2007, 2);
 }
예제 #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if ((bool)Session["Complete"] != true)
        {
            Response.Write("<META HTTP-EQUIV='refresh' content='2;URL=''>");
        }
        else
        {
            //            pnlAguarde.Visible = false;
            lblStatus.Text     = "Recursos distribuidos com sucesso (N/S = recursos não solicitados)";
            lblStatus.Visible  = true;
            lbtnVoltar.Visible = true;

            BusinessData.Entities.Calendario cal = (BusinessData.Entities.Calendario)Session["Calendario"];
            ControleCalendario calendarios       = new ControleCalendario();
            Calendario         calAtual          = calendarios.GetCalendario(cal.Ano, cal.Semestre);

            Dictionary <Guid, SatisfacaoTurma> satTurmas = new Dictionary <Guid, SatisfacaoTurma>();
            //Preenche a colecao para todas as turmas do semestre
            foreach (TurmaDistribuicao t in calAtual.Turmas)
            {
                satTurmas.Add(t.EntidadeTurma.Id, new SatisfacaoTurma(t));
            }

            ColecaoRequisicoes listaReq = (ColecaoRequisicoes)Session["ReqResult"];
            string             ant      = "";
            foreach (Requisicao req in listaReq)
            {
                Guid   id    = req.Turma.EntidadeTurma.Id;
                string atual = req.Turma.EntidadeTurma.Id + req.Dia.Data.ToShortDateString() + req.Horario;
                // Se a turma estiver no dicionário (todas devem estar) e a turma+dia+horário
                // do último recurso atendido não for o mesmo, conta essa requisição
                // como válida
                if (satTurmas.ContainsKey(id))// && !atual.Equals(ant))
                {
                    /*
                     * if (req.Turma.EntidadeTurma.Disciplina.Nome.Contains("Nome da Disciplina") &&
                     * req.Turma.EntidadeTurma.Professor.Nome.Contains("Nome do Professor"))
                     * {
                     *  Debug.WriteLine(req.Prioridade + ": " + req.Dia.Data.ToShortDateString() + " " +
                     *      " - " + req.Horario + " - " +
                     *      req.CategoriaRecurso.Descricao + " - " + req.EstaAtendido);
                     *  Debug.WriteLine("   atual: " + atual);
                     *  Debug.WriteLine("   ant:   " + ant);
                     * }
                     */

                    if (!atual.Equals(ant))
                    {
                        satTurmas[id].Pedidos++;
                    }
                    if (req.EstaAtendido)
                    {
                        satTurmas[id].Atendimentos++;
//                        if (atual.Equals(ant))
//                            satTurmas[id].Pedidos--;
                    }
                    ant = req.Turma.EntidadeTurma.Id + req.Dia.Data.ToShortDateString() + req.Horario;
                }
            }

            List <TurmaRelat> listaTurmas = new List <TurmaRelat>();
            foreach (TurmaDistribuicao t in calAtual.Turmas)
            {
                Guid id = t.EntidadeTurma.Id;

                int    atend        = satTurmas[id].Atendimentos;
                int    pedidos      = satTurmas[id].Pedidos;
                double satisfDouble = 1;
                string satisf       = "100%";
                if (pedidos > 0)
                {
                    satisfDouble = atend / (double)pedidos;
                    satisf       = String.Format("{0:P}", satisfDouble);
                }
                bool dadosOK = t.EntidadeTurma.Disciplina.Categoria.Descricao.Contains("Teórica") ||
                               t.EntidadeTurma.Disciplina.Categoria.Descricao.Contains("PPG") ||
                               t.EntidadeTurma.Curso.Nome.Contains("PPG") ||
                               t.EntidadeTurma.Curso.Nome.StartsWith("Física");

                // Recursos não foram solicitados para essa turma, mas deveriam ter sido
                if (!dadosOK && pedidos == 0)
                {
                    satisfDouble = 0;
                    satisf       = "N/S";
                }

                listaTurmas.Add(new TurmaRelat
                {
                    Id         = id,
                    Numero     = t.EntidadeTurma.Numero,
                    Disciplina = t.EntidadeTurma.Disciplina,
                    Curso      = t.EntidadeTurma.Curso,
                    DataHora   = t.EntidadeTurma.DataHora,
                    Professor  = t.EntidadeTurma.Professor,
                    Pedidos    = pedidos,
                    Atendidos  = atend,
                    Satisfacao = satisf,
                    Satisf     = satisfDouble
                });
                //                Response.Write(t.EntidadeTurma.Disciplina+ " - " +
                //                    t.EntidadeTurma.Numero + " ("+ t.EntidadeTurma.Professor+") " +
                //                    atend + " de " + pedidos + "<br/>");
            }
            listaTurmas.Sort();
            grvListaTurmas.DataSource    = listaTurmas;
            grvListaTurmas.RowDataBound += grvListaTurmas_RowDataBound;
            grvListaTurmas.DataBind();
        }
    }