예제 #1
0
        protected string export(IPlantillaCompuestaExportable plantilla, IEnumerable <IInstanciaPlantillaCompuestaExportable> instancias, string separador)
        {
            logger.Info("export {0}, {1}, {2}", Utilities.Serializer.Serialize2JSON(plantilla), Utilities.Serializer.Serialize2JSON(instancias), separador);
            List <string> rows = new List <string>();

            if (instancias.Count() == 0)
            {
                return("");
            }
            // Carga de los datos
            List <string> titulos = new List <string>();

            titulos.Add("id");
            titulos.Add("Latitud");
            titulos.Add("Longitud");
            titulos.Add("Accuracy");
            titulos.Add("Altitud");
            titulos.Add("AltitudAccuracy");
            titulos.Add("Codigo");
            titulos.Add("Fecha");
            titulos.Add("Hora");
            foreach (IConsignaExportable consigna in plantilla.consignas)
            {
                titulos.Add(consigna.descripcion);
            }
            rows.Add(String.Join(separador, titulos));
            // Carga de datos
            List <string> row;

            // Recorrer todas las instancias
            foreach (IInstanciaPlantillaCompuestaExportable ipc in instancias)
            {
                // para cada instancia compuesta, se busca el dato correspondiente a cada plantilla simple (titulos)
                row = new List <string>();
                row.Add(ipc.id + "");
                row.Add(ipc.latitud + "");
                row.Add(ipc.longitud + "");
                row.Add(ipc.accuracy + "");
                row.Add(ipc.altitud + "");
                row.Add(ipc.altitudAccuracy + "");
                row.Add(ipc.idTemporal + "");
                row.Add(ipc.fechaHora.ToString(Constants.Formatos.FECHA));
                row.Add(ipc.fechaHora.ToString(Constants.Formatos.HORA));
                foreach (IConsignaExportable consigna in plantilla.consignas)
                {
                    // Buscar la instancia que corresponde con ps
                    IInstanciaPlantillaSimpleExportable ip = ipc.getInstanciaByConsigna(consigna);
                    if (ip == null)
                    {
                        row.Add("-");
                    }
                    else
                    {
                        row.Add(ip.convertToData(separador));
                    }
                }
                rows.Add(String.Join(separador, row));
            }
            return(String.Join(Environment.NewLine, rows));
        }
        public string Export(IPlantillaCompuestaExportable plantilla, IEnumerable <IInstanciaPlantillaCompuestaExportable> instancias)
        {
            logger.Info("export {0}, {1}", plantilla, instancias.Count());
            if (instancias.Count() == 0)
            {
                return("[]");
            }
            List <ExpandoObject> listado = new List <ExpandoObject>();

            // Recorrer todas las plantillas
            foreach (IInstanciaPlantillaCompuestaExportable ipc in instancias)
            {
                logger.Info("Agregando item");
                dynamic item = new ExpandoObject();
                item.Codigo          = ipc.idTemporal;
                item.Latitud         = ipc.latitud;
                item.Longitud        = ipc.longitud;
                item.Accuracy        = ipc.accuracy;
                item.Altitud         = ipc.altitud;
                item.AltitudAccuracy = ipc.altitudAccuracy;
                item.Fecha           = ipc.fechaHora.ToString(Constants.Formatos.FECHA);
                item.Hora            = ipc.fechaHora.ToString(Constants.Formatos.HORA);
                foreach (IConsignaExportable consigna in plantilla.consignas)
                {
                    // Buscar la instancia que corresponde con ps
                    IInstanciaPlantillaSimpleExportable ip = ipc.getInstanciaByConsigna(consigna);
                    if (ip == null)
                    {
                        (item as IDictionary <string, object>).Add(consigna.descripcion, string.Empty);
                    }
                    else
                    {
                        (item as IDictionary <string, object>).Add(consigna.descripcion, ip.convertToData(" - "));
                    }
                }
                listado.Add(item);
                logger.Info("Item agregado");
            }
            logger.Info("Listado con {1} elementos", listado.Count);
            return(JsonConvert.SerializeObject(new { listado }, Formatting.None));
        }
예제 #3
0
        public String Export(IPlantillaCompuestaExportable plantilla, IEnumerable <IInstanciaPlantillaCompuestaExportable> instancias)
        {
            logger.Info("export {0}, {1}", Utilities.Serializer.Serialize2JSON(plantilla), Utilities.Serializer.Serialize2JSON(instancias));
            StringBuilder str = new StringBuilder();

            str.Append("<table border=`1px`b>");
            str.Append("<tr>");
            str.Append("<td><b>Id</b></td>");
            str.Append("<td><b>Latitud</b></td>");
            str.Append("<td><b>Longitud</b></td>");
            str.Append("<td><b>Accuracy</b></td>");
            str.Append("<td><b>Altitud</b></td>");
            str.Append("<td><b>AltitudAccuracy</b></td>");
            str.Append("<td><b>Codigo</b></td>");
            str.Append("<td><b>Fecha</b></td>");
            str.Append("<td><b>Hora</b></td>");
            // Carga de los datos
            foreach (IConsignaExportable consigna in plantilla.consignas)
            {
                str.Append("<td><b>");
                str.Append(consigna.descripcion);
                str.Append("</b></td>");
            }
            str.Append("</tr>");
            // Carga de datos
            // Recorrer todas las instancias
            foreach (IInstanciaPlantillaCompuestaExportable ipc in instancias)
            {
                str.Append("<tr>");
                // para cada instancia compuesta, se busca el dato correspondiente a cada plantilla simple (titulos)
                str.Append("<td>");
                str.Append(ipc.id);
                str.Append("</td>");

                str.Append("<td>");
                str.Append(ipc.latitud);
                str.Append("</td>");

                str.Append("<td>");
                str.Append(ipc.longitud);
                str.Append("</td>");

                str.Append("<td>");
                str.Append(ipc.accuracy);
                str.Append("</td>");

                str.Append("<td>");
                str.Append(ipc.altitud);
                str.Append("</td>");

                str.Append("<td>");
                str.Append(ipc.altitudAccuracy);
                str.Append("</td>");

                str.Append("<td>");
                str.Append(ipc.idTemporal);
                str.Append("</td>");

                str.Append("<td>");
                str.Append(ipc.fechaHora.ToString(Constants.Formatos.FECHA));
                str.Append("</td>");

                str.Append("<td>");
                str.Append(ipc.fechaHora.ToString(Constants.Formatos.HORA));
                str.Append("</td>");

                foreach (IConsignaExportable consigna in plantilla.consignas)
                {
                    // Buscar la instancia que corresponde con ps
                    IInstanciaPlantillaSimpleExportable ip = ipc.getInstanciaByConsigna(consigna);
                    str.Append("<td>");
                    str.Append(ip.convertToData(" - "));
                    str.Append("</td>");
                }
                str.Append("</tr>");
            }
            str.Append("</table>");
            return(str.ToString());
        }
        public string Export(IPlantillaCompuestaExportable plantilla, IEnumerable <IInstanciaPlantillaCompuestaExportable> instancias)
        {
            logger.Info("export {0}, {2}", Utilities.Serializer.Serialize2JSON(plantilla), Utilities.Serializer.Serialize2JSON(instancias));
            XmlDocument    doc            = new XmlDocument();
            XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
            XmlElement     root           = doc.DocumentElement;

            doc.InsertBefore(xmlDeclaration, root);
            XmlElement listado = doc.CreateElement(string.Empty, "Listado", string.Empty);

            doc.AppendChild(listado);

            // Carga de los datos
            foreach (IInstanciaPlantillaCompuestaExportable ipc in instancias)
            {
                XmlElement item = doc.CreateElement(string.Empty, "Item", string.Empty);
                // Código
                XmlElement elemento = doc.CreateElement(string.Empty, "Codigo", string.Empty);
                elemento.AppendChild(doc.CreateTextNode(ipc.idTemporal));
                item.AppendChild(elemento);
                // Latitud
                elemento = doc.CreateElement(string.Empty, "Latitud", string.Empty);
                elemento.AppendChild(doc.CreateTextNode(ipc.latitud + ""));
                item.AppendChild(elemento);
                // Longitud
                elemento = doc.CreateElement(string.Empty, "Longitud", string.Empty);
                elemento.AppendChild(doc.CreateTextNode(ipc.longitud + ""));
                item.AppendChild(elemento);
                // Accuracy
                elemento = doc.CreateElement(string.Empty, "Accuracy", string.Empty);
                elemento.AppendChild(doc.CreateTextNode(ipc.accuracy + ""));
                item.AppendChild(elemento);
                // Altitud
                elemento = doc.CreateElement(string.Empty, "Altitud", string.Empty);
                elemento.AppendChild(doc.CreateTextNode(ipc.altitud + ""));
                item.AppendChild(elemento);
                // AltitudAccuracy
                elemento = doc.CreateElement(string.Empty, "AltitudAccuracy", string.Empty);
                elemento.AppendChild(doc.CreateTextNode(ipc.altitudAccuracy + ""));
                item.AppendChild(elemento);
                // Fecha
                elemento = doc.CreateElement(string.Empty, "Fecha", string.Empty);
                elemento.AppendChild(doc.CreateTextNode(ipc.fechaHora.ToString(Constants.Formatos.FECHA)));
                item.AppendChild(elemento);
                // Hora
                elemento = doc.CreateElement(string.Empty, "Hora", string.Empty);
                elemento.AppendChild(doc.CreateTextNode(ipc.fechaHora.ToString(Constants.Formatos.HORA)));
                item.AppendChild(elemento);
                // Resto
                foreach (IConsignaExportable consigna in plantilla.consignas)
                {
                    // Buscar la instancia que corresponde con ps
                    IInstanciaPlantillaSimpleExportable ip = ipc.getInstanciaByConsigna(consigna);

                    elemento = doc.CreateElement(string.Empty, consigna.descripcion.Replace(' ', '_'), string.Empty);
                    if (ip == null)
                    {
                        elemento.AppendChild(doc.CreateTextNode(""));
                    }
                    else
                    {
                        elemento.AppendChild(doc.CreateTextNode(ip.convertToData(" - ")));
                    }
                    item.AppendChild(elemento);
                }

                listado.AppendChild(item);
            }
            return(doc.OuterXml);
        }