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 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)); }
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)); }
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); }