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