Ejemplo n.º 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));
        }
Ejemplo n.º 2
0
        public MemoryStream Export(IPlantillaCompuestaExportable plantilla, IEnumerable <IInstanciaPlantillaCompuestaExportable> instancias)
        {
            logger.Info("Export {0}, {1}", plantilla, instancias.Count());
            var          stream = new MemoryStream();
            StreamWriter writer = new StreamWriter(stream);

            logger.Info("Strategy selected {0}", _ExporterStrategy);
            string datos = _ExporterStrategy.Export(plantilla, instancias);

            writer.Write(datos);
            writer.Flush();
            stream.Position = 0;
            return(stream);
        }
        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));
        }
Ejemplo n.º 4
0
 public override string Export(IPlantillaCompuestaExportable plantilla, IEnumerable <IInstanciaPlantillaCompuestaExportable> instancias)
 {
     logger.Info("export {0}", Utilities.Serializer.Serialize2JSON(plantilla), Utilities.Serializer.Serialize2JSON(instancias));
     return(export(plantilla, instancias, SEPARADOR));
 }
Ejemplo n.º 5
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);
        }
        public string Export(IPlantillaCompuestaExportable plantilla, IEnumerable <IInstanciaPlantillaCompuestaExportable> instancias)
        {
            logger.Info("export {0}, {1}", Utilities.Serializer.Serialize2JSON(plantilla), Utilities.Serializer.Serialize2JSON(instancias));
            // Crear el estilo para el ícono
            var style = new Style();

            style.Id   = "plantillaSimpleIcon";
            style.Icon = new IconStyle();
            //style.Icon.Color = new Color32(255, 0, 255, 0);
            //style.Icon.ColorMode = ColorMode.Normal;
            style.Icon.Icon  = new IconStyle.IconLink(new Uri("http://www.tatuel.com.ar/assets/img/plantillas/plantilla-simple.png"));
            style.Icon.Scale = 1.1;
            // Conjunto de localizaciones
            Folder carpeta = new Folder();

            carpeta.Name = "Localizaciones de carga de datos";
            carpeta.AddStyle(style);
            // Recorrer cada instancia de plantilla simple y cargar ese punto
            Point point;

            foreach (Models.IInstanciaPlantillaCompuestaExportable ipc in instancias)
            {
                //if (ipc.posicion != null)
                //{
                point = new Point();
                point.AltitudeMode = AltitudeMode.Absolute;
                point.Id           = "Tatuel";
                //LatitudLongitud latlon = (LatitudLongitud)ipc.posicion;
                point.Coordinate = new Vector(ipc.latitud, ipc.longitud, ipc.altitud);
                Placemark marca = new Placemark();
                marca.Name     = "" + ipc.descripcion;
                marca.Geometry = point;
                // descripcion
                marca.Description      = new Description();
                marca.Description.Text = "Punto de carga de datos ";
                marca.ExtendedData     = new ExtendedData();
                marca.ExtendedData.AddData(new Data()
                {
                    DisplayName = "Datos serializados en formato JSON",
                    Name        = "Datos serializados en formato JSON",
                    Value       = Utilities.Serializer.Serialize2JSON(new
                    {
                        accuracy        = ipc.accuracy,
                        altitud         = ipc.altitud,
                        altitudAccuracy = ipc.altitudAccuracy,
                        descripcion     = ipc.descripcion,
                        fechaHora       = ipc.fechaHora,
                        idTemporal      = ipc.idTemporal,
                        latitud         = ipc.latitud,
                        longitud        = ipc.longitud
                    })
                });
                marca.Time = new Timestamp()
                {
                    When = ipc.fechaHora
                };
                marca.StyleUrl = new Uri("#plantillaSimpleIcon", UriKind.Relative);
                // agregarlo a la carpeta
                carpeta.AddChild(marca);
                //}
            }
            // Crear el archivo KML con esa carpeta
            Kml kml = new Kml();

            kml.Feature = carpeta;
            // Serializar y devolver
            Serializer serializerKml = new Serializer();

            serializerKml.Serialize(kml);
            return(serializerKml.Xml);
        }