private string GetHtmlLinks(NancyContext context)
{
var routeCache = this.routeCacheProvider.GetCache();
if (routeCache == null)
return String.Empty;
StringBuilder linkBuilder = new StringBuilder();
var routesWithMetadata = routeCache
.Select(r => r.Value)
.SelectMany(r => r.Select(t => t.Item2))
.Where(r => r.Metadata != null && r.Metadata.Has<PomonaRouteMetadata>());
foreach (var route in routesWithMetadata)
{
var metadata = route.Metadata.Retrieve<PomonaRouteMetadata>();
var rel = String.Concat("http://pomona.io/rel/", metadata.Relation);
var contentType = metadata.ContentType;
var methods = metadata.Method.ToString().ToUpperInvariant();
var href = context.Request.Url.BasePath + route.Path;
linkBuilder.AppendFormat("<link rel=\"{0}\" type=\"{1}\" methods=\"{2}\" href=\"{3}\">{4}",
rel,
contentType,
methods,
href,
Environment.NewLine);
}
return linkBuilder.ToString();
}