Imports System
Imports System.Runtime.CompilerServices
Imports System.Text
Imports System.Web
Imports System.Web.Http.Description
Namespace Areas.HelpPage
Public Module ApiDescriptionExtensions
'''
'''Generates an URI-friendly ID for the . E.g. "Get-Values-id_name" instead of "GetValues/{id}?name={name}"
'''
'''The .
'''The ID as a string.
Public Function GetFriendlyId(ByVal description As ApiDescription) As String
Dim path As String = description.RelativePath
Dim urlParts() As String = path.Split("?"c)
Dim localPath As String = urlParts(0)
Dim queryKeyString As String = Nothing
If (urlParts.Length > 1) Then
Dim query As String = urlParts(1)
Dim queryKeys() As String = HttpUtility.ParseQueryString(query).AllKeys
queryKeyString = String.Join("_", queryKeys)
End If
Dim friendlyPath As New StringBuilder
friendlyPath.AppendFormat("{0}-{1}",
description.HttpMethod.Method,
localPath.Replace("/", "-").Replace("{", String.Empty).Replace("}", String.Empty))
If (Not queryKeyString Is Nothing) Then
friendlyPath.AppendFormat("_{0}", queryKeyString.Replace(".", "-"))
End If
GetFriendlyId = friendlyPath.ToString()
End Function
End Module
End Namespace