using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.AspNetCore.Mvc.ViewFeatures; using Microsoft.AspNetCore.Razor.TagHelpers; namespace StatusMonitor.Web.TagHelpers { [HtmlTargetElement("utc-time", Attributes = "time")] /// /// Underlying class for tag. /// public class UtcTimeTagHelper : TagHelper { public bool ShowDate { get; set; } = false; public DateTime Time { get; set; } [ViewContext] public ViewContext ViewContext { get; set; } /// /// Called by the framework. Renders tag helper. /// public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { output.TagName = "span"; output.TagMode = TagMode.StartTagAndEndTag; output.Attributes.Clear(); output.Attributes.Add("class", ShowDate ? "utc-date" : "utc-time"); output.Content.SetHtmlContent(Time.ToString()); await Task.CompletedTask; } } }