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