Fixed bugs and added a few helper functions.
This commit is contained in:
parent
836aea0da7
commit
6c64bbe4be
@ -37,6 +37,7 @@ namespace MontoyaTech.Rest.Net
|
||||
/// <summary>
|
||||
/// Creates a new route with a given method, syntax, target and optional close response flag.
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="method"></param>
|
||||
/// <param name="syntax"></param>
|
||||
/// <param name="target"></param>
|
||||
@ -52,6 +53,7 @@ namespace MontoyaTech.Rest.Net
|
||||
/// <summary>
|
||||
/// Creates a new route with a given method, syntax, target and optional close response flag.
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <param name="method"></param>
|
||||
/// <param name="syntax"></param>
|
||||
/// <param name="target"></param>
|
||||
@ -59,6 +61,50 @@ namespace MontoyaTech.Rest.Net
|
||||
public Route(HttpRequestMethod method, string syntax, Func<RouteContext, HttpListenerResponse> target, bool closeResponse = true)
|
||||
: this(method.ToString(), syntax, target, closeResponse) { }
|
||||
|
||||
/// <summary>
|
||||
/// Returns a list of the argument names for this route.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<string> GetArguments()
|
||||
{
|
||||
var segments = this.Syntax.Split('/').Where(segment => segment.Length > 0).Select(segment => segment.Trim()).ToList();
|
||||
|
||||
var results = new List<string>();
|
||||
|
||||
foreach (var segment in segments)
|
||||
if (segment.StartsWith("{"))
|
||||
results.Add(segment.Substring(1, segment.Length - 2));
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the url for this route including arguments.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string GetUrl()
|
||||
{
|
||||
var segments = this.Syntax.Split('/').Where(segment => segment.Length > 0).Select(segment => segment.Trim()).ToList();
|
||||
|
||||
var builder = new StringBuilder();
|
||||
|
||||
foreach (var segment in segments)
|
||||
{
|
||||
builder.Append('/');
|
||||
|
||||
if (segment.StartsWith("{"))
|
||||
builder.Append(segment);
|
||||
else if (segment == "*")
|
||||
builder.Append("*");
|
||||
else if (segment == "**")
|
||||
break;
|
||||
else
|
||||
builder.Append(segment);
|
||||
}
|
||||
|
||||
return builder.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Invokes this route with a context and a given set of string arguments.
|
||||
/// </summary>
|
||||
@ -192,7 +238,7 @@ namespace MontoyaTech.Rest.Net
|
||||
RouteArgumentConverter.Convert<T2>(arguments[1]),
|
||||
RouteArgumentConverter.Convert<T3>(arguments[2]),
|
||||
RouteArgumentConverter.Convert<T4>(arguments[3]),
|
||||
RouteArgumentConverter.Convert<T4>(arguments[4])
|
||||
RouteArgumentConverter.Convert<T5>(arguments[4])
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -220,8 +266,8 @@ namespace MontoyaTech.Rest.Net
|
||||
RouteArgumentConverter.Convert<T2>(arguments[1]),
|
||||
RouteArgumentConverter.Convert<T3>(arguments[2]),
|
||||
RouteArgumentConverter.Convert<T4>(arguments[3]),
|
||||
RouteArgumentConverter.Convert<T4>(arguments[4]),
|
||||
RouteArgumentConverter.Convert<T4>(arguments[5])
|
||||
RouteArgumentConverter.Convert<T5>(arguments[4]),
|
||||
RouteArgumentConverter.Convert<T6>(arguments[5])
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -249,9 +295,9 @@ namespace MontoyaTech.Rest.Net
|
||||
RouteArgumentConverter.Convert<T2>(arguments[1]),
|
||||
RouteArgumentConverter.Convert<T3>(arguments[2]),
|
||||
RouteArgumentConverter.Convert<T4>(arguments[3]),
|
||||
RouteArgumentConverter.Convert<T4>(arguments[4]),
|
||||
RouteArgumentConverter.Convert<T4>(arguments[5]),
|
||||
RouteArgumentConverter.Convert<T4>(arguments[6])
|
||||
RouteArgumentConverter.Convert<T5>(arguments[4]),
|
||||
RouteArgumentConverter.Convert<T6>(arguments[5]),
|
||||
RouteArgumentConverter.Convert<T7>(arguments[6])
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -279,10 +325,10 @@ namespace MontoyaTech.Rest.Net
|
||||
RouteArgumentConverter.Convert<T2>(arguments[1]),
|
||||
RouteArgumentConverter.Convert<T3>(arguments[2]),
|
||||
RouteArgumentConverter.Convert<T4>(arguments[3]),
|
||||
RouteArgumentConverter.Convert<T4>(arguments[4]),
|
||||
RouteArgumentConverter.Convert<T4>(arguments[5]),
|
||||
RouteArgumentConverter.Convert<T4>(arguments[6]),
|
||||
RouteArgumentConverter.Convert<T4>(arguments[7])
|
||||
RouteArgumentConverter.Convert<T5>(arguments[4]),
|
||||
RouteArgumentConverter.Convert<T6>(arguments[5]),
|
||||
RouteArgumentConverter.Convert<T7>(arguments[6]),
|
||||
RouteArgumentConverter.Convert<T8>(arguments[7])
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user