Example #1
0
        public static async Task <string> ToHtmlEmail(FileContent content, IProgress <string> progress)
        {
            if (content == null)
            {
                return(string.Empty);
            }

            var preprocessResults = BracketCodeCommon.ProcessCodesForEmail(content.BodyContent, progress);
            var bodyHtmlString    = ContentProcessing.ProcessContent(preprocessResults, content.BodyContentFormat);

            var tags = Tags.TagListTextLinkList(content);

            tags.Style("text-align", "center");

            var createdUpdated = $"<p style=\"text-align: center;\">{Tags.CreatedByAndUpdatedOnString(content)}</p>";

            var possibleDownloadLink = FileParts.DownloadLinkTag(content);

            possibleDownloadLink.Style("text-align", "center");

            var innerContent = HtmlEmail.ChildrenIntoTableCells(
                $"{await HtmlEmail.EmailSimpleTitle(content)}{bodyHtmlString}{possibleDownloadLink}{tags}{createdUpdated}{HtmlEmail.EmailSimpleFooter()}");

            var emailHtml = HtmlEmail.WrapInNestedCenteringTable(innerContent);

            return(emailHtml);
        }
Example #2
0
        public void StartMap(string mapPath)
        {
            List <TileData> data = new List <TileData>(ContentProcessing.LoadTerrainData(".//Content//XML//Terrain.xml", ScreenManager.Content));

            data.AddRange(ContentProcessing.LoadBuildingData(".//Content//XML//Buildings.xml", ScreenManager.Content));
            TileTypes = data.ToArray();
            map       = ContentProcessing.LoadTileMap(mapPath, new ContentProcessing.MapToTileData(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), 3, ScreenManager.Content);

            map[3, 3, 0].ID = 71;
        }
Example #3
0
        public static async Task <string> ToHtmlEmail(PhotoContent content, IProgress <string> progress)
        {
            if (content == null)
            {
                return(string.Empty);
            }

            var mdBuilder = new StringBuilder();

            mdBuilder.AppendLine(BracketCodePhotos.Create(content));

            var detailsList = new List <string>
            {
                content.Aperture,
                content.ShutterSpeed,
                content.Iso?.ToString("F0"),
                content.Lens,
                content.FocalLength,
                content.CameraMake,
                content.CameraModel,
                content.License
            }.Where(x => !string.IsNullOrWhiteSpace(x)).ToList();

            mdBuilder.AppendLine($"<p style=\"text-align: center;\">Details: {string.Join(", ", detailsList)}</p>");

            var tags = Tags.TagListTextLinkList(content);

            tags.Style("text-align", "center");
            mdBuilder.AppendLine(tags.ToString());

            mdBuilder.AppendLine();

            if (!string.IsNullOrWhiteSpace(content.BodyContent))
            {
                mdBuilder.AppendLine(content.BodyContent);
            }

            mdBuilder.AppendLine();

            mdBuilder.AppendLine($"<p style=\"text-align: center;\">{Tags.CreatedByAndUpdatedOnString(content)}</p>");

            var preprocessResults = BracketCodeCommon.ProcessCodesForEmail(mdBuilder.ToString(), progress);
            var bodyHtmlString    = ContentProcessing.ProcessContent(preprocessResults, content.BodyContentFormat);

            var innerContent = HtmlEmail.ChildrenIntoTableCells(
                $"{await HtmlEmail.EmailSimpleTitle(content)}{bodyHtmlString}{HtmlEmail.EmailSimpleFooter()}");

            var emailHtml = HtmlEmail.WrapInNestedCenteringTable(innerContent);

            return(emailHtml);
        }
Example #4
0
        public static HtmlTag ImageSourceNotesDivTag(ImageContent dbEntry, IProgress <string> progress = null)
        {
            if (string.IsNullOrWhiteSpace(dbEntry.BodyContent))
            {
                return(HtmlTag.Empty());
            }

            var sourceNotesContainer = new DivTag().AddClass("image-source-notes-container");
            var sourceNotes          = new DivTag().AddClass("image-source-notes-content").Encoded(false).Text(
                ContentProcessing.ProcessContent(BracketCodeCommon.ProcessCodesForSite($"Source: {dbEntry.BodyContent}", progress), ContentFormatEnum.MarkdigMarkdown01));

            sourceNotesContainer.Children.Add(sourceNotes);

            return(sourceNotesContainer);
        }
Example #5
0
        public static async Task <string> ToHtmlEmail(ImageContent content, IProgress <string> progress)
        {
            if (content == null)
            {
                return(string.Empty);
            }

            var mdBuilder = new StringBuilder();

            mdBuilder.AppendLine(BracketCodeImages.Create(content));

            if (!string.IsNullOrWhiteSpace(content.BodyContent))
            {
                mdBuilder.AppendLine();

                mdBuilder.AppendLine(content.BodyContent);
            }

            var tags = Tags.TagListTextLinkList(content);

            tags.Style("text-align", "center");
            mdBuilder.AppendLine(tags.ToString());

            mdBuilder.AppendLine();

            mdBuilder.AppendLine($"<p style=\"text-align: center;\">{Tags.CreatedByAndUpdatedOnString(content)}</p>");

            var preprocessResults = BracketCodeCommon.ProcessCodesForEmail(mdBuilder.ToString(), progress);
            var bodyHtmlString    = ContentProcessing.ProcessContent(preprocessResults, content.BodyContentFormat);

            var innerContent = HtmlEmail.ChildrenIntoTableCells(
                $"{await HtmlEmail.EmailSimpleTitle(content)}{bodyHtmlString}{HtmlEmail.EmailSimpleFooter()}");

            var emailHtml = HtmlEmail.WrapInNestedCenteringTable(innerContent);

            return(emailHtml);
        }
Example #6
0
        public static HtmlTag PointDetailsDiv(PointContentDto dbEntry)
        {
            if (dbEntry?.PointDetails == null && !dbEntry.PointDetails.Any())
            {
                return(HtmlTag.Empty());
            }

            var containerDiv = new DivTag().AddClass("point-detail-list-container");

            foreach (var loopDetail in dbEntry.PointDetails)
            {
                var outerDiv = new DivTag().AddClass("point-detail-container");
                var typeLine = new HtmlTag("p").Text(loopDetail.DataType).AddClass("point-detail-type");
                outerDiv.Children.Add(typeLine);

                switch (loopDetail.DataType)
                {
                case "Campground":
                {
                    var pointDetails = JsonSerializer.Deserialize <Campground>(loopDetail.StructuredDataAsJson);

                    if (pointDetails == null)
                    {
                        return(outerDiv);
                    }

                    var infoList = new HtmlTag("ul").AddClass("point-detail-info-list");

                    if (pointDetails.Fee != null)
                    {
                        infoList.Children.Add(new HtmlTag("li").Text($"Fee: {pointDetails.Fee}"));
                    }

                    if (!string.IsNullOrEmpty(pointDetails.Notes))
                    {
                        var noteText = ContentProcessing.ProcessContent(
                            BracketCodeCommon.ProcessCodesForSite(pointDetails.Notes, null),
                            pointDetails.NotesContentFormat);

                        infoList.Children.Add(new HtmlTag("li").Encoded(false).Text(noteText));
                    }

                    outerDiv.Children.Add(infoList);

                    break;
                }

                case "Parking":
                {
                    var pointDetails = JsonSerializer.Deserialize <Parking>(loopDetail.StructuredDataAsJson);

                    if (pointDetails == null)
                    {
                        return(outerDiv);
                    }

                    var infoList = new HtmlTag("ul").AddClass("point-detail-info-list");

                    if (pointDetails.Fee != null)
                    {
                        infoList.Children.Add(new HtmlTag("li").Text($"Fee: {pointDetails.Fee}"));
                    }

                    if (!string.IsNullOrEmpty(pointDetails.Notes))
                    {
                        var noteText = ContentProcessing.ProcessContent(
                            BracketCodeCommon.ProcessCodesForSite(pointDetails.Notes, null),
                            pointDetails.NotesContentFormat);

                        infoList.Children.Add(new HtmlTag("li").Encoded(false).Text(noteText));
                    }

                    outerDiv.Children.Add(infoList);

                    break;
                }

                case "Feature":
                {
                    var pointDetails = JsonSerializer.Deserialize <Feature>(loopDetail.StructuredDataAsJson);

                    if (pointDetails == null)
                    {
                        return(outerDiv);
                    }

                    typeLine.Text($"Point Detail: {pointDetails.Type}");

                    var infoList = new HtmlTag("ul").AddClass("point-detail-info-list");

                    if (!string.IsNullOrEmpty(pointDetails.Notes))
                    {
                        var noteText = ContentProcessing.ProcessContent(
                            BracketCodeCommon.ProcessCodesForSite(pointDetails.Notes, null),
                            pointDetails.NotesContentFormat);

                        infoList.Children.Add(new HtmlTag("li").Encoded(false).Text(noteText));
                    }

                    outerDiv.Children.Add(infoList);

                    break;
                }

                case "Peak":
                {
                    var pointDetails = JsonSerializer.Deserialize <Peak>(loopDetail.StructuredDataAsJson);

                    if (pointDetails == null)
                    {
                        return(outerDiv);
                    }

                    var infoList = new HtmlTag("ul").AddClass("point-detail-info-list");

                    if (!string.IsNullOrEmpty(pointDetails.Notes))
                    {
                        var noteText = ContentProcessing.ProcessContent(
                            BracketCodeCommon.ProcessCodesForSite(pointDetails.Notes, null),
                            pointDetails.NotesContentFormat);

                        infoList.Children.Add(new HtmlTag("li").Encoded(false).Text(noteText));
                    }

                    outerDiv.Children.Add(infoList);

                    break;
                }

                case "Restroom":
                {
                    var pointDetails = JsonSerializer.Deserialize <Restroom>(loopDetail.StructuredDataAsJson);

                    if (pointDetails == null)
                    {
                        return(outerDiv);
                    }

                    var infoList = new HtmlTag("ul").AddClass("point-detail-info-list");

                    if (!string.IsNullOrEmpty(pointDetails.Notes))
                    {
                        var noteText = ContentProcessing.ProcessContent(
                            BracketCodeCommon.ProcessCodesForSite(pointDetails.Notes, null),
                            pointDetails.NotesContentFormat);

                        infoList.Children.Add(new HtmlTag("li").Encoded(false).Text(noteText));
                    }

                    outerDiv.Children.Add(infoList);

                    break;
                }

                case "TrailJunction":
                {
                    var pointDetails = JsonSerializer.Deserialize <TrailJunction>(loopDetail.StructuredDataAsJson);

                    if (pointDetails == null)
                    {
                        return(outerDiv);
                    }

                    var infoList = new HtmlTag("ul").AddClass("point-detail-info-list");

                    if (pointDetails.Sign != null)
                    {
                        infoList.Children.Add(
                            new HtmlTag("li").Text(pointDetails.Sign.Value ? "Signed" : "No Sign"));
                    }

                    if (!string.IsNullOrEmpty(pointDetails.Notes))
                    {
                        var noteText = ContentProcessing.ProcessContent(
                            BracketCodeCommon.ProcessCodesForSite(pointDetails.Notes, null),
                            pointDetails.NotesContentFormat);

                        infoList.Children.Add(new HtmlTag("li").Encoded(false).Text(noteText));
                    }

                    outerDiv.Children.Add(infoList);

                    break;
                }
                }

                containerDiv.Children.Add(outerDiv);
            }

            return(containerDiv);
        }