Пример #1
0
        /// <summary>
        /// Cargars the encabezado.
        /// </summary>
        private void CargarEncabezado()
        {
            lblFechaLanzamiento.Text = Convert.ToDateTime(encuestaSesion.fechaLanzamiento).ToShortDateString();
            if (encuestaSesion.fechaVencimiento.HasValue)
                lblFechaExpiracion.Text = Convert.ToDateTime(encuestaSesion.fechaVencimiento).ToShortDateString();

            lblCurso.Text = encuestaSesion.curso.curso.nombre;
            if (!string.IsNullOrEmpty(encuestaSesion.asignatura.asignatura.nombre))
            {
                lblAsignatura.Visible = true;
                lblAsignaturaNombre.Text = encuestaSesion.asignatura.asignatura.nombre;
            }
            BLEncuesta objBLEncuesta = new BLEncuesta();

            EncuestaAnalisis miAnalisis = objBLEncuesta.GetEncuestaAnalisis(encuestaSesion, null);
            if (miAnalisis != null)
            {
                lblEnviadas.Text = miAnalisis.nroLanzadas.ToString();
                lblRespondidas.Text = miAnalisis.nroRespondidas.ToString();
                if (Convert.ToDateTime(encuestaSesion.fechaVencimiento).Subtract(DateTime.Today).Days > 0)
                    lblPendientes.Text = miAnalisis.nroPendientes.ToString();
                else
                {
                    lblEncuestasPendientes.Text = "Encuestas Expiradas: ";
                    lblPendientes.Text = miAnalisis.nroExpiradas.ToString();
                }
            }

            lstRoles.Items.Clear();
            List<DTRol> listaRoles = (new BLEncuesta()).GetRolesAmbito(new AmbitoEncuesta() { idAmbitoEncuesta = encuestaSesion.ambito.idAmbitoEncuesta });
            foreach (DTRol item in listaRoles)
                lstRoles.Items.Add(new ListItem(item.Nombre));
        }
Пример #2
0
        /// <summary>
        /// Exportars the informe.
        /// </summary>
        private void ExportarInforme()
        {
            List<TablaGrafico> listaTabla = new List<TablaGrafico>();
            TablaGrafico miItem = new TablaGrafico();
            List<miRespuesta> miListaRespuesta = new List<miRespuesta>();
            string TmpPath = string.Empty;
            string nombrePNG = string.Empty;
            StringBuilder filtros = new StringBuilder();

            filtros.AppendLine("Curso: " + encuestaSesion.curso.curso.nombre);
            if (!string.IsNullOrEmpty(encuestaSesion.asignatura.asignatura.nombre))
                filtros.AppendLine("Asignatura: " + encuestaSesion.asignatura.asignatura.nombre);

            filtros.AppendLine("Fecha de Lanzamiento: " + Convert.ToDateTime(encuestaSesion.fechaLanzamiento).ToShortDateString());

            if (encuestaSesion.fechaVencimiento.HasValue)
                filtros.AppendLine("Fecha de Expiración: " + Convert.ToDateTime(encuestaSesion.fechaVencimiento).ToShortDateString());

            BLEncuesta objBLEncuesta = new BLEncuesta();

            int cantidad = 0;
            List<DTRol> listaRoles = null;
            foreach (ListItem item in lstRoles.Items)
                if (item.Selected)
                    cantidad++;

            if (cantidad > 0 && cantidad != lstRoles.Items.Count)
            {
                listaRoles = new List<DTRol>();
                foreach (ListItem item in lstRoles.Items)
                    if (item.Selected) { listaRoles.Add(new DTRol() { Nombre = item.Text }); }
            }

            EncuestaAnalisis miAnalisis = objBLEncuesta.GetEncuestaAnalisis(encuestaSesion, listaRoles);
            if (miAnalisis != null)
            {
                filtros.AppendLine("Encuestas Enviadas: " + miAnalisis.nroLanzadas.ToString());
                filtros.AppendLine("Encuestas Respondidas: " + miAnalisis.nroRespondidas.ToString());

                if (Convert.ToDateTime(encuestaSesion.fechaVencimiento).Subtract(DateTime.Today).Days > 0)
                    filtros.AppendLine("Encuestas Pendientes: " + miAnalisis.nroPendientes.ToString());
                else
                    filtros.AppendLine("Encuestas Expiradas: " + miAnalisis.nroExpiradas.ToString());
            }

            filtros.AppendLine("Roles: ");
            if (cantidad == 0 || cantidad == lstRoles.Items.Count)
                foreach (ListItem item in lstRoles.Items)
                    filtros.AppendLine(" * " + item.Text);
            else
                foreach (ListItem item in lstRoles.Items)
                    if (item.Selected) filtros.AppendLine(" * " + item.Text);

            foreach (RespuestaPreguntaAnalisis item in listaRespuestaNumericas)
            {
                miItem = new TablaGrafico();
                miListaRespuesta = ObtenerRespuestas(item);
                miItem.titulo = item.textoPregunta;
                miItem.listaEncabezados = new List<string>();
                miItem.listaEncabezados.Add("Respuesta");
                miItem.listaEncabezados.Add("Porcentaje");

                miItem.listaCuerpo = new List<List<string>>();

                decimal totales = miListaRespuesta.Sum(od => od.cantidad);

                Chart miGrafico = new Chart
                {
                    Width = 800,
                    Height = 450,
                    RenderType = RenderType.ImageTag,
                    AntiAliasing = AntiAliasingStyles.All,
                    TextAntiAliasingQuality = TextAntiAliasingQuality.High,
                    BorderlineDashStyle = ChartDashStyle.Solid,
                    BackSecondaryColor = Color.White,
                    Palette = ChartColorPalette.BrightPastel,
                    BackGradientStyle = GradientStyle.TopBottom
                };

                //miGrafico.Titles.Add(item.textoPregunta);
                //miGrafico.Titles[0].Font = new Font("Arial", 16f);

                miGrafico.Legends.Add("");
                miGrafico.Legends[0].Alignment = StringAlignment.Center;
                miGrafico.Legends[0].IsTextAutoFit = false;
                miGrafico.Legends[0].BorderWidth = 1;
                miGrafico.Legends[0].BorderDashStyle = ChartDashStyle.Solid;
                miGrafico.Legends[0].ShadowOffset = 3;
                miGrafico.Legends[0].Name = "Default";
                miGrafico.Legends[0].BackColor = Color.Transparent;
                miGrafico.Legends[0].BorderColor = Color.FromArgb(26, 59, 105);
                miGrafico.Legends[0].Docking = Docking.Bottom;

                miGrafico.ChartAreas.Add("");
                miGrafico.ChartAreas[0].AxisX.Title = "Respuestas";
                miGrafico.ChartAreas[0].AxisY.Title = "Porcentaje";
                miGrafico.ChartAreas[0].AxisX.TitleFont = new Font("Arial", 12f);
                miGrafico.ChartAreas[0].AxisY.TitleFont = new Font("Arial", 12f);
                miGrafico.ChartAreas[0].AxisX.LabelStyle.Font = new Font("Arial", 10f);
                miGrafico.ChartAreas[0].AxisX.LabelStyle.Angle = 90;
                miGrafico.ChartAreas[0].BackColor = Color.Transparent;
                miGrafico.ChartAreas[0].BorderColor = Color.FromArgb(26, 59, 105);
                miGrafico.ChartAreas[0].Area3DStyle.Enable3D = true;
                miGrafico.ChartAreas[0].Area3DStyle.Inclination = 45;

                miGrafico.Series.Add("");
                miGrafico.Series[0].ChartType = SeriesChartType.Pie;
                miGrafico.Series[0].ShadowOffset = 2;
                miGrafico.Series[0]["PieLabelStyle"] = "Outside";
                miGrafico.Series[0].LegendText = "#VALX: #PERCENT";

                foreach (miRespuesta itemRespuesta in miListaRespuesta)
                {
                    miItem.listaCuerpo.Add(new List<string>() { itemRespuesta.respuesta, Math.Round((itemRespuesta.cantidad / totales * 100), 2).ToString() });
                    miGrafico.Series[0].Points.AddXY(itemRespuesta.respuesta, Math.Round((itemRespuesta.cantidad / totales * 100), 2));
                }

                TmpPath = System.Configuration.ConfigurationManager.AppSettings["oTmpPath"];
                nombrePNG = TmpPath + "\\Grafico_" + Session.SessionID + "_" + encuestaSesion.idEncuesta + "_" + item.idPregunta + ".png";
                miGrafico.SaveImage(nombrePNG, ChartImageFormat.Png);
                miItem.listaPie = new List<string>();
                miItem.listaPie.Add(nombrePNG);

                listaTabla.Add(miItem);
            }

            foreach (RespuestaPreguntaAnalisis item in listaRespuestaTextuales)
            {
                miItem = new TablaGrafico();
                miListaRespuesta = ObtenerRespuestas(item);
                miItem.titulo = item.textoPregunta;
                miItem.listaEncabezados = new List<string>();
                miItem.listaEncabezados.Add("Análisis");
                miItem.listaEncabezados.Add("Resultados");

                miItem.listaCuerpo = new List<List<string>>();

                miItem.listaCuerpo.Add(new List<string>() { "Respuestas Obtenidas", item.respuestasObtenidas.ToString() });
                miItem.listaCuerpo.Add(new List<string>() { "Respuestas Esperadas", item.respuestasEsperadas.ToString() });
                miItem.listaCuerpo.Add(new List<string>() { "Porcentaje", item.porcentaje.ToString() });

                listaTabla.Add(miItem);
            }
            ExportPDF.ExportarGraficoPDF(encuestaSesion.nombreEncuesta, ObjSessionDataUI.ObjDTUsuario.Nombre, filtros.ToString(), string.Empty, listaTabla);
        }
 /// <summary>
 /// Validars the preguntas.
 /// </summary>
 /// <param name="propEncuesta">The prop encuesta.</param>
 private void ValidarPreguntas(Encuesta propEncuesta)
 {
     BLEncuesta objBLEncuesta = new BLEncuesta(propEncuesta);
     objBLEncuesta.ValidarLanzamiento();
 }
Пример #4
0
        /// <summary>
        /// Actualizars the encabezado.
        /// </summary>
        private void ActualizarEncabezado()
        {
            int cantidad = 0;
            List<DTRol> listaRoles = null;
            foreach (ListItem item in lstRoles.Items)
                if (item.Selected)
                    cantidad++;

            if (cantidad > 0 && cantidad != lstRoles.Items.Count)
            {
                listaRoles = new List<DTRol>();
                foreach (ListItem item in lstRoles.Items)
                    if (item.Selected) { listaRoles.Add(new DTRol() { Nombre = item.Text }); }
            }

            BLEncuesta objBLEncuesta = new BLEncuesta();

            EncuestaAnalisis miAnalisis = objBLEncuesta.GetEncuestaAnalisis(encuestaSesion, listaRoles);
            if (miAnalisis != null)
            {
                lblEnviadas.Text = miAnalisis.nroLanzadas.ToString();
                lblRespondidas.Text = miAnalisis.nroRespondidas.ToString();
                if (Convert.ToDateTime(encuestaSesion.fechaVencimiento).Subtract(DateTime.Today).Days > 0)
                    lblPendientes.Text = miAnalisis.nroPendientes.ToString();
                else
                {
                    lblEncuestasPendientes.Text = "Encuestas Expiradas: ";
                    lblPendientes.Text = miAnalisis.nroExpiradas.ToString();
                }
            }
            //udpIndicadores.Update();
        }
 /// <summary>
 /// Guardars the encuesta.
 /// </summary>
 /// <param name="entidad">The entidad.</param>
 private void GuardarEncuesta(Encuesta entidad)
 {
     objBLEncuesta = new BLEncuesta(entidad);
     objBLEncuesta.Save();
 }
 /// <summary>
 /// Lanzars the encuesta.
 /// </summary>
 private void LanzarEncuesta()
 {
     Encuesta encuesta = new Encuesta() { idEncuesta = propEncuesta.idEncuesta };
     objBLEncuesta = new BLEncuesta();
     objBLEncuesta.LanzarEncuesta(encuesta);
 }
 /// <summary>
 /// Cargars the lista.
 /// </summary>
 /// <param name="entidad">The entidad.</param>
 private void CargarLista(Encuesta entidad)
 {
     objBLEncuesta = new BLEncuesta(entidad);
     listaEncuesta = objBLEncuesta.GetEncuestas(entidad);
 }
 /// <summary>
 /// Eliminars the encuesta.
 /// </summary>
 private void EliminarEncuesta()
 {
     Encuesta encuesta = new Encuesta() { idEncuesta = propEncuesta.idEncuesta };
     objBLEncuesta = new BLEncuesta(encuesta);
     objBLEncuesta.Delete();
 }
Пример #9
0
 /// <summary>
 /// Cargars the lista.
 /// </summary>
 /// <param name="entidad">The entidad.</param>
 private void CargarLista(Encuesta encuesta, Pregunta entidad)
 {
     objBLEncuesta = new BLEncuesta(encuesta);
     listaPreguntas = objBLEncuesta.GetPreguntasEncuesta(encuestaSesion, entidad);
 }
Пример #10
0
        /// <summary>
        /// Generars the esqueleto.
        /// </summary>
        /// <param name="entidad">The entidad.</param>
        private void generarEsqueleto(Encuesta entidad)
        {
            objBLEncuesta = new BLEncuesta();

            objBLPregunta = new BLPregunta();

            if (listaCategorias.Count == 0)
                listaCategorias = objBLEncuesta.GetCategoriasPorEncuesta(entidad);

            lblNombreEncuesta.Text = entidad.nombreEncuesta;

            Label lblCategoria;

            AjaxControlToolkit.AccordionPane pn;
            int i = 0;
            int contador = 0;
            List<string> textoPregunta = new List<string>();
            foreach (CategoriaPregunta categoria in listaCategorias)
            {
                List<Pregunta> preguntasPorCategoria = objBLPregunta.GetPreguntasPorCategoria(categoria, entidad);

                lblCategoria = new Label();

                lblCategoria.Text = categoria.nombre;

                pn = new AjaxControlToolkit.AccordionPane();
                pn.ID = "Panel_" + i;

                pn.HeaderContainer.Controls.Add(lblCategoria);

                if (preguntasPorCategoria.Count > 0)
                {
                    Label lblPregunta;

                    foreach (Pregunta pregunta in preguntasPorCategoria)
                    {
                        contador++;
                        Panel panelRespuesta = new Panel();
                        panelRespuesta.ID = "pregunta_" + contador.ToString();

                        //PREGUNTA
                        lblPregunta = new Label();

                        textoPregunta = new List<string>();

                        textoPregunta = UIUtilidades.StringWrap(pregunta.textoPregunta, 130);

                        foreach (string item in textoPregunta)
                            lblPregunta.Text += item + "<br />";

                        lblPregunta.Font.Bold = true;
                        lblPregunta.Font.Size = 11;

                        panelRespuesta.Controls.Add(lblPregunta);

                        respuestaSkeleton.pregunta = pregunta;

                        Respuesta miRespuesta = null;
                        //RESPUESTA
                        if (pregunta.escala.nombre.Equals("Conceptual literal"))
                        {
                            TextBox txtRespuesta = new TextBox();
                            txtRespuesta.ID = "respuesta_" + pregunta.idPregunta.ToString();
                            txtRespuesta.Rows = 5;
                            txtRespuesta.Columns = 75;
                            txtRespuesta.AutoPostBack = false;
                            txtRespuesta.CssClass = "txtMultilinea99";
                            txtRespuesta.TextMode = TextBoxMode.MultiLine;
                            txtRespuesta.Wrap = false;
                            txtRespuesta.MaxLength = 4000;

                            if (ListaRespuestas != null)
                            {
                                miRespuesta = ListaRespuestas.Find(p => p.pregunta.textoPregunta == txtRespuesta.ID);
                                if (miRespuesta != null) txtRespuesta.Text = miRespuesta.respuestaTextual;
                            }
                            txtRespuesta.TextChanged += new EventHandler(this.text_Changed);
                            txtRespuesta.Attributes.Add("onBlur", "GuardarRespuesta(this);");

                            panelRespuesta.Controls.Add(new LiteralControl("<br/>"));
                            panelRespuesta.Controls.Add(txtRespuesta);
                            panelRespuesta.Controls.Add(new LiteralControl("<br/>"));
                        }
                        else
                        {
                            List<ValorEscalaMedicion> lista = new List<ValorEscalaMedicion>();
                            BLValorEscala objBL = new BLValorEscala();
                            EscalaMedicion miEscala = new EscalaMedicion();
                            lista = objBL.GetValoresEscalasMedicion(pregunta.escala);

                            RadioButtonList botonera = new RadioButtonList();
                            botonera.AutoPostBack = true;
                            botonera.ID = "respuesta_" + pregunta.idPregunta.ToString();
                            botonera.SelectedIndexChanged += new EventHandler(botonera_SelectedIndexChanged);
                            foreach (ValorEscalaMedicion item in lista)
                                botonera.Items.Add(new ListItem(item.nombre, item.idValorEscala.ToString()));

                            panelRespuesta.Controls.Add(botonera);
                            cantRespuestasMinimas++;
                        }

                        pn.ContentContainer.Controls.Add(panelRespuesta);
                        pn.ContentContainer.Controls.Add(new LiteralControl("<br/>"));
                    }
                }
                CuestionarioAccordion.Panes.Add(pn);
                ++i;
            }
        }
Пример #11
0
        /// <summary>
        /// Cargars the encuesta.
        /// </summary>
        /// <param name="idEncuestaSeleccionada">The id encuesta seleccionada.</param>
        private void CargarEncuesta(int idEncuestaSeleccionada)
        {
            cantRespuestasMinimas = 0;
            objBLEncuesta = new BLEncuesta();
            objBLEncuestaDisponible = new BLEncuestaDisponible();

            //OBTENGO LA ENCUESTA PUNTUAL
            if (encuestaPuntual.idEncuesta == 0)
                encuestaPuntual = objBLEncuestaDisponible.GetEncuestasDisponibles(encuestaSeleccionada).Find(c => c.idEncuesta == idEncuestaSeleccionada);

            encuestaSeleccionada.encuesta = encuestaPuntual;
            encuestaSeleccionada.usuario.username = ObjSessionDataUI.ObjDTUsuario.Nombre;

            //PRECARGA DE ATRIBUTOS DE LA RESPUESTA SKELETON
            respuestaSkeleton.encuestaDisponible.encuesta = encuestaPuntual;
            respuestaSkeleton.encuestaDisponible.usuario.username = ObjSessionDataUI.ObjDTUsuario.Nombre;

            generarEsqueleto(encuestaPuntual);
        }
Пример #12
0
        /// <summary>
        /// Generars the esqueleto.
        /// </summary>
        /// <param name="entidad">The entidad.</param>
        private void generarEsqueleto(Encuesta entidad)
        {
            objBLEncuesta = new BLEncuesta();

            //objBLEncuestaDisponible = new BLEncuestaDisponible();

            objBLPregunta = new BLPregunta();

            //List<CategoriaPregunta> listaCategorias = objBLEncuesta.GetCategoriasPorEncuesta(encuestaSeleccionada.encuesta);

            if (listaCategorias.Count == 0)
                listaCategorias = objBLEncuesta.GetCategoriasPorEncuesta(entidad);

            //lblNombreEncuesta.Text = encuestaSeleccionada.encuesta.nombreEncuesta;
            lblNombreEncuesta.Text = entidad.nombreEncuesta;

            Label lblCategoria;

            AjaxControlToolkit.AccordionPane pn;
            int i = 0;
            int contador = 0;
            List<string> textoPregunta = new List<string>();
            foreach (CategoriaPregunta categoria in listaCategorias)
            {
                List<Pregunta> preguntasPorCategoria = objBLPregunta.GetPreguntasPorCategoria(categoria, entidad);

                lblCategoria = new Label();

                lblCategoria.Text = categoria.nombre;

                pn = new AjaxControlToolkit.AccordionPane();
                pn.ID = "Panel_" + i;

                pn.HeaderContainer.Controls.Add(lblCategoria);

                if (preguntasPorCategoria.Count > 0)
                {
                    Label lblPregunta;

                    foreach (Pregunta pregunta in preguntasPorCategoria)
                    {
                        contador++;
                        Panel panelRespuesta = new Panel();
                        panelRespuesta.ID = "pregunta_" + contador.ToString();

                        //PREGUNTA
                        lblPregunta = new Label();

                        textoPregunta = new List<string>();

                        textoPregunta = UIUtilidades.StringWrap(pregunta.textoPregunta, 130);

                        foreach (string item in textoPregunta)
                            lblPregunta.Text += item + "<br />";

                        lblPregunta.Font.Bold = true;
                        lblPregunta.Font.Size = 11;
                        //lblPregunta.BorderWidth = 1;
                        //lblPregunta.Width = 990;

                        panelRespuesta.Controls.Add(lblPregunta);
                        //panelRespuesta.Controls.Add(new LiteralControl("<br/>"));

                        respuestaSkeleton.pregunta = pregunta;

                        Respuesta miRespuesta = null;
                        //RESPUESTA
                        if (pregunta.escala.nombre.Equals("Conceptual literal"))
                        {
                            TextBox txtRespuesta = new TextBox();
                            txtRespuesta.ID = "respuesta_" + pregunta.idPregunta.ToString();
                            txtRespuesta.Rows = 5;
                            txtRespuesta.Columns = 75;
                            txtRespuesta.AutoPostBack = false;
                            txtRespuesta.CssClass = "txtMultilinea99";
                            txtRespuesta.TextMode = TextBoxMode.MultiLine;
                            txtRespuesta.Wrap = false;
                            txtRespuesta.MaxLength = 4000;

                            if (ListaRespuestas != null)
                            {
                                miRespuesta = ListaRespuestas.Find(p => p.pregunta.textoPregunta == txtRespuesta.ID);
                                if (miRespuesta != null) txtRespuesta.Text = miRespuesta.respuestaTextual;
                            }
                            txtRespuesta.TextChanged += new EventHandler(this.text_Changed);
                            txtRespuesta.Attributes.Add("onBlur", "GuardarRespuesta(this);");

                            panelRespuesta.Controls.Add(new LiteralControl("<br/>"));
                            panelRespuesta.Controls.Add(txtRespuesta);
                            panelRespuesta.Controls.Add(new LiteralControl("<br/>"));
                        }
                        else
                        {
                            AjaxControlToolkit.Rating rating = new AjaxControlToolkit.Rating();

                            rating.ID = "respuesta_" + pregunta.idPregunta.ToString();
                            rating.MaxRating = 5;

                            rating.StarCssClass = "ratingStar";
                            rating.WaitingStarCssClass = "savedRatingStar";
                            rating.FilledStarCssClass = "filledRatingStar";
                            rating.EmptyStarCssClass = "emptyRatingStar";
                            rating.AutoPostBack = false;

                            if (ListaRespuestas != null)
                            {
                                miRespuesta = ListaRespuestas.Find(p => p.pregunta.textoPregunta == rating.ID);
                                if (miRespuesta != null) rating.CurrentRating = miRespuesta.respuestaSeleccion;
                            }
                            rating.Changed += new AjaxControlToolkit.RatingEventHandler(rating_Changed);

                            panelRespuesta.Controls.Add(new LiteralControl("<br/>"));
                            panelRespuesta.Controls.Add(rating);
                            panelRespuesta.Controls.Add(new LiteralControl("<br/>"));
                            cantRespuestasMinimas++;
                        }

                        pn.ContentContainer.Controls.Add(panelRespuesta);
                        pn.ContentContainer.Controls.Add(new LiteralControl("<br/>"));
                    }
                }
                CuestionarioAccordion.Panes.Add(pn);
                ++i;
            }
        }
Пример #13
0
        /// <summary>
        /// Eliminar la pregunta.
        /// </summary>
        private void EliminarPregunta()
        {
            Pregunta objEliminar = new Pregunta();
            objEliminar.idPregunta = propPregunta.idPregunta;

            encuestaSesion.preguntas.Clear();
            encuestaSesion.preguntas.Add(objEliminar);

            objBLEncuesta = new BLEncuesta(encuestaSesion);
            objBLEncuesta.Delete();

            CargarPresentacion();
            BuscarPregunta(encuestaSesion, null);
        }