/// <summary> /// Genera el contenido web de un lugar /// </summary> /// <param name="web">El fichero de la web</param> /// <param name="place">El lugar del que volcar la info</param> private void GenerateContentsPlacePage(StreamWriter web, Place place) { Place lugar = place.Parent; // Poner el título web.Write("<h1>"); web.Write(Area.FormatForPresentation(place.Name)); web.Write("</h1>\n<hr>\n"); // A dónde pertenece ? web.Write(GetWhereIsInfo(lugar)); // Imagen de zona web.Write("<center><img src=\""); web.Write(Path.GetFileName(place.GetImageName())); web.Write("\" ALT=\"imagen correspondiente a la zona\">" + "</center>\n<hr>\n\n" ); // Índice de lugares/parcelas que contiene web.Write("\n<hr><P><h3>Aquí hay:</h3><P>\n<ul>"); foreach (Place subplace in place.Places) { web.Write("\n<li>"); web.Write("Lugar de <a href=\"" + Database.EtqLugar + '_' + subplace.Id + ExtHtml + "\">" + Area.FormatForPresentation(subplace.Name) ); web.Write("</a> conteniendo " + subplace.CountPlaces.ToString() + " lugare(s) y " + subplace.CountEstates.ToString() + " finca(s)." ); } foreach (Estate estate in place.Estates) { web.Write("\n<li>"); web.Write("Finca: <a href=\"" + Database.EtqFinca + '_' + estate.Id + ExtHtml + "\">" + Area.FormatForPresentation(estate.Name) ); web.Write("</a> de " + Estate.cnvtHaMc(estate.Extension) + " m.c." ); } web.Write("\n</ul>\n<P>"); GenerateFooterForArea(web, place); // Copiar archivos CopyImages(place); }
public static string PreparePath(Area a) { Area parent = a.Parent; string toret = ""; string placeName = ""; if (parent != null) { placeName = Area.FormatForPresentation(parent.Name); toret += "<b>" + placeName + "</b> ("; string.Join(",", new List <Area>(parent.BuildPath())); toret += ')'; } return(toret); }
/// <summary> /// Genera la web para una finca /// </summary> /// <param name="p">La finca en cuestión.</param> private void GenerateRealEstatePage(Estate p) { string fich = this.Dir + Database.EtqFinca + '_' + p.Id + ExtHtml ; StreamWriter web = GenerateHtmlSkeleton( fich, "Finca " + Area.FormatForPresentation(p.Name) ); GenerateContentsRealEstatePage(web, p); web.Write("\n\n</body>\n</html>\n\n"); web.Close(); return; }
/// <summary> /// Genera recursivamente /// un índice html para colocar como panel izquierdo. /// </summary> /// <param name="f">El stream donde escribir</param> /// <param name="l">El lugar que vamos considerando</param> private void GenerateSideIndex(StreamWriter f, Place l) { f.Write("\n<br><ul>"); // Poner todas las áreas foreach (Place place in l.Places) { f.Write("\n<li><a href=\"" + Database.EtqLugar + '_' + place.Id + ExtHtml + "\" target=\"contents\">" + Area.FormatForPresentation(place.Name) + "</a>" ); if (place != l) { GenerateSideIndex(f, (Place)place); } } // Poner todas las fincas foreach (Estate finca in l.Estates) { f.Write("\n<li><a href=\"" + Database.EtqFinca + '_' + finca.Id + ExtHtml + "\" target=\"contents\">" + Area.FormatForPresentation(finca.Name) + "</a>" ); } f.Write("\n</ul>"); return; }
private void GenerateFooterForArea(StreamWriter web, Area p) { Area lugar = p.Parent; // Volver al padre if (lugar != null) { web.Write("<P><center>Volver a <a href=\""); web.Write(Database.EtqLugar + '_' + lugar.Id + ExtHtml); web.Write("\">"); web.Write(Area.FormatForPresentation(lugar.Name)); web.Write("</a>\n</center>"); } // Volver a la raiz web.Write("\n\n<P><center>Volver a <a href=\""); web.Write(Database.EtqLugar + '_' + this.Database.Root.Id + ExtHtml); web.Write("\">"); web.Write(Area.FormatForPresentation(this.Database.Root.Name)); web.Write("</a>\n</center>\n\n"); }
/// <summary> /// Genera la web del lugar /// </summary> /// <param name="l">El lugar en sí.</param> private void GeneratePageForPlace(Place l) { string fich = this.Database + Database.EtqLugar + '_' + l.Id + ExtHtml ; StreamWriter web = GenerateHtmlSkeleton(fich, "Lugar de " + Area.FormatForPresentation(l.Name) ); GenerateContentsPlacePage(web, l); web.Write("\n\n</body>\n</html>\n\n"); web.Close(); return; }
/// <summary> /// Returns the needed HTML to reach its parent places or all /// the real estates. /// </summary> /// <param name="place">The place to research its info for.</param> /// <returns>The HTML page, as a string.</returns> private string GetWhereIsInfo(Place place) { var places = new List <Area>(); string toret = ""; // A dónde pertenece ? if (place != null) { places.AddRange(place.BuildPath()); places.Insert(0, place); toret = "\n<h2>en "; foreach (Place l in places) { toret += "<a href=\"" + Database.EtqLugar + '_' + l.Id + ExtHtml ; toret += "\">"; toret += Area.FormatForPresentation(l.Name); toret += @"</a>"; if (l.Parent != null) { toret += ", "; } else { toret += "."; } } toret += "</h2>\n<hr>\n"; } return(toret); }
public string GetHtml() { int numFincas = 0; double superficieTotal = 0.0; double valorTotal = 0.0; double valor; double valorMedio; if (this.Html == null) { this.processStart( "Generando informe...", 0, areas.Count ); // Crear el contenido HTML this.html.Append( "<header><META HTTP-EQUIV=\"Content-Type\" " + "CONTENT=\"text/html;charset=ISO-8859-1\">" + "<title>Informe gF</title>\n\n</header><body>\n\n"); this.html.Append("\n\n<p><center><h1>Informe de fincas</h1></center></p>\n\n"); this.html.Append("<table width=100%>\n"); this.html.Append("<tr><td><b><u>Ref.Catastral/Id</u></b></td>" + "<td><b><u>Nombre</u></b></td>" + "<td><b><u>Superficie</u></b></td>" + "<td><b><u>Valoración</u></b></td>" + "<td><b><u>Situado en</u></b></td>" + "<td><b><u>Observaciones</u></b></td></tr>\n\n"); for (int i = 0; i < areas.Count; ++i) { if (areas[i] is Estate finca) { ++numFincas; finca = ( Estate )areas[i]; // Calcular el valor superficieTotal += finca.Extension; if (finca.WasSold()) { valor = finca.getPrecioDeVenta(); } else { valor = finca.Valor; } valorTotal += valor; // Crear el contenido en Html para la finca this.html.Append("<tr><td><font size=-2><b>" + finca.RefCatastral + "</b></font></td></tr><tr><td><font size=-2><b>" + finca.Id + "</b></font></td><td><font size=-2>" + Area.FormatForPresentation(finca.Name) + "</font></td>"); this.html.Append("<td><font size=-2>" + Estate.cnvtHaMc((( Estate )finca).Extension).ToString("N2") + " m<sup>2</sup></font></td>"); this.html.Append("<td><font size=-2>" + valor.ToString("C") + "</font></td>"); this.html.Append("<td><font size=-2>" + PreparePath(finca) + "</td></font><td><font size=-2>" + finca.Remarks + "</font></td>\n</tr>\n"); this.html.Append("\n<tr><td><hr></td></tr>\n"); } this.processMakeStep(i); } this.html.Append("</table><p>\n"); // Indicar el valor y la superficie total if (superficieTotal == 0) { valorMedio = 0; } else { valorMedio = valorTotal / ((double)Estate.cnvtHaMc(superficieTotal)); } this.html.Append("\n\n<table border=0>" + "<tr><td><font size=-2><b>Núm. fincas:</b></font></td>" + "<td><font size=-2>" + Convert.ToString(numFincas) + "</font></td></tr>" + "\n<tr><td><font size=-2><b>Superficie total:</b></font></td>" + "<td><font size=-2>" + Estate.cnvtHaMc(superficieTotal).ToString("N2") + " m<sup>2</sup></font></td></tr>" + "\n<tr><td><font size=-2><b>Valor total:</b></font></td>" + "<td><font size=-2>" + valorTotal.ToString("C") + "</font></td></tr>" + "\n<tr><td><b><font size=-2>Valor medio por m.c.:</b></font></td>" + "<td><font size=-2>" + valorMedio.ToString("C") + "</font></td></tr>\n" + "</table>"); this.html.Append("\n\n<p>\n\n</body></html>\n"); this.processEnd(); } return(this.Html); }