public static string GetTitle(this Poll poll, IUrlHelper urlHelper, ParseMode mode = ParseMode.Default) { var title = poll.GetTitleBase(mode) ?? new StringBuilder(); if (title.Length == 0) { title.Bold((builder, m) => builder.Sanitize(poll.Title ?? $"Poll{poll.Id}", m), mode); if (poll.Portal != null) { title.Sanitize(poll.ExRaidGym ? " ☆\u00A0" : " ◊\u00A0", mode); title.Bold((builder, m) => builder.Sanitize(poll.Portal.Name, m), mode); } } return(title.ToString()); }
public static StringBuilder GetDescription(this Poll poll, IUrlHelper urlHelper, ParseMode mode = Helpers.DefaultParseMode) { var description = poll.GetTitleBase(mode); if (!string.IsNullOrEmpty(poll.Title)) { if (description.Length > 0) { description.NewLine().Sanitize(poll.Title, mode); } else { description.Bold((builder, m) => builder.Sanitize(poll.Title, m), mode); if (poll.Portal is { } portal) { description.Sanitize(poll.ExRaidGym ? " ☆\u00A0" : " ◊\u00A0", mode); description.Link(portal.Name, $"https://pogo.tools/{portal.Guid}", mode); if (poll.ExRaidGym) { description.Sanitize(" (EX Raid Gym)", mode); } } } } switch (mode) { case ParseMode.Html: case ParseMode.Markdown: var raid = poll.Raid(); if (raid?.Lat != null && raid?.Lon != null) { description .Sanitize(/*string.IsNullOrEmpty(poll.Title) ? Environment.NewLine : */ RaidEx.Delimeter, mode) .Link("Map", raid.GetLink(urlHelper), mode); } break; } return(description); }