public async Task Invoke(IDictionary<string, object> environment)
{
var owinHttpContext = new OwinHttpContext(environment);
var routeData = _routes.GetRouteData(owinHttpContext);
if (routeData == null)
{
write404(environment);
return;
}
new OwinRequestReader().Read(environment);
var arguments = new OwinServiceArguments(routeData, environment);
var invoker = routeData.RouteHandler.As<FubuRouteHandler>().Invoker;
try
{
await invoker.Invoke(arguments, routeData.Values).ConfigureAwait(false);
}
catch (Exception e)
{
write500(environment, e);
}
}