Ejemplo n.º 1
0
        private static void LLenarDatosReporteAplicacion(DataEmprendeEntities2 conexion, aplicacion_encuesta aplicacionEncuesta)
        {
            try
            {
                IList<temporal_encuesta> temporalEncuestaList = conexion.temporal_encuesta.ToList();
                foreach (var item in temporalEncuestaList)
                {
                    conexion.temporal_encuesta.DeleteObject(item);
                }
                conexion.SaveChanges();

                IList<aplicacion_encuesta> aplicacionList = new List<aplicacion_encuesta>();
                aplicacionList.Add(aplicacionEncuesta);
                IList<tematica> tematicaList;
                IList<preguntas> preguntaList;
                IList<incisos> incisoList;
                IList<resultados_encuesta> resultadosList;
                IList<detalle_catalogo> detallesList;

                Dictionary<tematica, ValoresManager> tematicasValores = new Dictionary<tematica, ValoresManager>();
                Dictionary<preguntas, ValoresManager> preguntasValores = new Dictionary<preguntas, ValoresManager>();
                Dictionary<incisos, ValoresManager> incisosValores = new Dictionary<incisos, ValoresManager>();

                foreach (var aplicacion in aplicacionList)
                {
                    tematicaList = aplicacion.encuesta.tematica.ToList();
                    foreach (var tematica in tematicaList)
                    {
                        preguntaList = tematica.preguntas.ToList();
                        ValoresManager tematicaValor = new ValoresManager();
                        foreach (var pregunta in preguntaList)
                        {
                            incisoList = pregunta.incisos.ToList();
                            ValoresManager preguntaValor = new ValoresManager();
                            foreach (var inciso in incisoList)
                            {
                                ValoresManager incisoValor = new ValoresManager();
                                int total = 0;
                                double average = 0.0;
                                int maximo = int.MinValue;

                                if (inciso.tipo_inciso.tipo_inciso1 != "Escribir")
                                {
                                    total = aplicacion.resultados_encuesta.Where(item => item.id_inciso == inciso.id_inciso).Count();
                                    //double averageAux = aplicacion.resultados_encuesta.Where(item => item.id_inciso == inciso.id_inciso).Average(item => conexion.detalle_catalogo.Where(det => det.id == item.resultado).First().peso);
                                    var auxiliarResultados = aplicacion.resultados_encuesta.Where(item => item.id_inciso == inciso.id_inciso && conexion.detalle_catalogo.Where(det => det.id == item.resultado).First().peso != 0);
                                    if (auxiliarResultados.Count() > 0)
                                    {
                                        average = auxiliarResultados.Average(item => conexion.detalle_catalogo.Where(det => det.id == item.resultado).First().peso);
                                    }
                                    else
                                    {
                                        average = 0;
                                    }
                                    //average = aplicacion.resultados_encuesta.Where(item => item.id_inciso == inciso.id_inciso && conexion.detalle_catalogo.Where(det => det.id == item.resultado).First().peso != 0).Average(item => conexion.detalle_catalogo.Where(det => det.id == item.resultado).First().peso);
                                    maximo = inciso.catalogo.detalle_catalogo.Max(item => item.peso);
                                    //maximo = aplicacion.resultados_encuesta.Where(item => item.id_inciso == inciso.id_inciso).Max(item => conexion.detalle_catalogo.Where(det => det.id == item.resultado).First().peso);
                                }
                                incisoValor.Add(average, total, maximo);
                                preguntaValor.Add(average, total, maximo);
                                tematicaValor.Add(average, total, maximo);
                                incisosValores.Add(inciso, incisoValor);
                            }
                            preguntasValores.Add(pregunta, preguntaValor);
                        }
                        tematicasValores.Add(tematica, tematicaValor);
                    }
                }

                foreach (var aplicacion in aplicacionList)
                {
                    tematicaList = aplicacion.encuesta.tematica.ToList();
                    foreach (var tematica in tematicaList)
                    {
                        preguntaList = tematica.preguntas.ToList();
                        foreach (var pregunta in preguntaList)
                        {
                            incisoList = pregunta.incisos.ToList();
                            foreach (var inciso in incisoList)
                            {
                                if (inciso.tipo_inciso.tipo_inciso1 == "Escribir")
                                {
                                    resultadosList = aplicacion.resultados_encuesta.Where(item => item.id_inciso == inciso.id_inciso).ToList();
                                    foreach (var resultado in resultadosList)
                                    {
                                        temporal_encuesta temporal = new temporal_encuesta();
                                        temporal.id = conexion.temporal_encuesta.Count();
                                        temporal.AplicacionDescripcion = aplicacion.descripcion;
                                        temporal.AplicacionId = aplicacion.id;
                                        temporal.AplicacionFecha = aplicacion.fecha;

                                        //temporal.DetalleId
                                        //temporal.DetalleNombre = "";
                                        //temporal.DetalleNumeral
                                        //temporal.DetallePeso

                                        temporal.EncuestaEncuesta = aplicacion.encuesta.encuesta1;
                                        temporal.EncuestaId = aplicacion.encuesta.id;

                                        temporal.IncisoId = inciso.id_inciso;
                                        temporal.IncisoInciso = inciso.inciso.Trim();
                                        temporal.IncisoNumeral = inciso.numeral;

                                        temporal.PreguntaId = pregunta.id_pregunta;
                                        temporal.PreguntaPregunta = pregunta.pregunta;

                                        temporal.ResultadoIdSujeto = resultado.id_sujeto;
                                        temporal.ResultadoResultado = resultado.resultado;
                                        temporal.ResultadoResultadoTexto = resultado.resultado_texto;

                                        temporal.TematicaId = tematica.id;
                                        temporal.TematicaTematica = tematica.tematica1;

                                        temporal.TipoIncisoId = inciso.tipo_inciso.id_tipo_inciso;
                                        temporal.TipoIncisoTipoInciso = inciso.tipo_inciso.tipo_inciso1;

                                        conexion.temporal_encuesta.AddObject(temporal);
                                        conexion.SaveChanges();
                                    }
                                }
                                else
                                {
                                    int total = aplicacion.resultados_encuesta.Where(item => item.id_inciso == inciso.id_inciso).Count();
                                    detallesList = inciso.catalogo.detalle_catalogo.ToList();
                                    foreach (var detalle in detallesList)
                                    {
                                        temporal_encuesta temporal = new temporal_encuesta();
                                        temporal.id = conexion.temporal_encuesta.Count();

                                        temporal.AplicacionDescripcion = aplicacion.descripcion;
                                        temporal.AplicacionId = aplicacion.id;
                                        temporal.AplicacionFecha = aplicacion.fecha;

                                        temporal.DetalleId = detalle.id;
                                        temporal.DetalleNombre = detalle.nombre;
                                        temporal.DetalleNumeral = detalle.numeral;
                                        temporal.DetallePeso = detalle.peso;

                                        temporal.EncuestaEncuesta = aplicacion.encuesta.encuesta1;
                                        temporal.EncuestaId = aplicacion.encuesta.id;

                                        temporal.IncisoId = inciso.id_inciso;
                                        ValoresManager temporalValor = incisosValores[inciso];
                                        temporal.IncisoInciso = inciso.inciso.Trim() + " " + temporalValor.Promedio + " de " + temporalValor.Maximo;
                                        temporal.IncisoInciso = inciso.inciso.Trim() ;
                                        temporal.Auxiliar1 = "Calificación según peso: " + temporalValor.Promedio + " de un máximo de " + temporalValor.Maximo;
                                        temporal.IncisoNumeral = inciso.numeral;

                                        temporalValor = preguntasValores[pregunta];
                                        temporal.PreguntaId = pregunta.id_pregunta;
                                        temporal.PreguntaPregunta = pregunta.pregunta + " " + temporalValor.Promedio + " de " + temporalValor.Maximo;

                                        //temporal.ResultadoIdSujeto = resultado.id_sujeto;
                                        //temporal.ResultadoResultado = resultado.resultado;
                                        int cantidadDetalles = aplicacion.resultados_encuesta.Where(item => item.id_inciso == inciso.id_inciso && item.resultado == detalle.id).Count();
                                        double porCiento = (double)(cantidadDetalles * 100) / ((double)total);
                                        //temporal.ResultadoResultadoTexto = "(Evaluado como "+ cantidadDetalles + " de " + total + " para un " + Redondeo(porCiento,1) + "%)";

                                        //todo esto es una solucion temporal para lo de los reportes
                                        //temporal.ResultadoResultadoTexto =SalvacionReporte(cantidadDetalles,total,Redondeo(porCiento,1));
                                        temporal.ResultadoResultadoTexto = "";

                                        //nuevo para los reportes
                                        temporal.Calificacion = cantidadDetalles;
                                        temporal.Maximo = total;
                                        temporal.Porcentaje = double.Parse( Redondeo(porCiento, 1));
                                        //

                                        temporalValor = tematicasValores[tematica];
                                        temporal.TematicaId = tematica.id;
                                        temporal.TematicaTematica = tematica.tematica1 + " " + temporalValor.Promedio + " de " + temporalValor.Maximo;

                                        temporal.TipoIncisoId = inciso.tipo_inciso.id_tipo_inciso;
                                        temporal.TipoIncisoTipoInciso = inciso.tipo_inciso.tipo_inciso1;

                                        conexion.temporal_encuesta.AddObject(temporal);
                                       conexion.SaveChanges();
                                    }
                                }

                            }
                        }
                    }
                }
               // conexion.SaveChanges();
            }
            catch (Exception)
            { }
        }
Ejemplo n.º 2
0
 private void EliminarAplicacionEncuesta(aplicacion_encuesta aplicacion)
 {
     Utiles.EliminaAplicacion(nodoSeleccionado, aplicacion);
     DataEmprendeconextion.aplicacion_encuesta.DeleteObject(aplicacion);
     DataEmprendeconextion.SaveChanges();
 }