/// <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);
        }
Exemple #2
0
        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);
        }
Exemple #8
0
        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);
        }