string GetEntityRender() { StringBuilder sb = new StringBuilder(); sb.Append($"<{EntityOrigin.Name}"); foreach (var item in EntityOrigin.Attributes) { string attrValue = item.Value; switch (item.Key) { case "src": case "href": attrValue = MetadataContainerOwner.ResolveUrl(attrValue); break; } if (!string.IsNullOrEmpty(attrValue)) { sb.Append($" {item.Key}=\"{attrValue}\""); } else { sb.Append($" {item.Key}"); } } if (EntityOrigin.Name == "script" || !string.IsNullOrEmpty(EntityOrigin.Content)) { sb.Append(">"); if (EntityOrigin.Name == "title") { sb.Append(string.Format(TitleFormat, EntityOrigin.Content)); } else { sb.Append(EntityOrigin.Content); } sb.Append($"</{EntityOrigin.Name}>"); } else { sb.Append("/>"); } sb.Append(Environment.NewLine); return(sb.ToString()); }
protected override void BuildRenderTree(RenderTreeBuilder builder) { var entities = MetadataContainerOwner.Metadata.Entities.GroupBy(x => x.Key).Select(x => x.OrderBy(i => i.Priority).Last().Origin).ToList(); string titleFormat = entities.FirstOrDefault(x => x.Name == "titleFormat")?.Content ?? "{0}"; builder.AddContent(0, new MarkupString(Environment.NewLine)); foreach (var entity in entities) { if (!MetadataContainerOwner.CheckBeforeRender(entity)) { continue; } builder.OpenComponent <DocumentMetadataEntityComponent>(1); builder.SetKey(entity.Key); builder.AddAttribute(2, "EntityOrigin", entity); builder.AddAttribute(3, "TitleFormat", titleFormat); builder.CloseComponent(); } }