public static Task Invoke(IOwinContext context) { var absolutePath = context.Request.Uri.AbsolutePath; var match = Routes.FirstOrDefault(t => t.Item1.Regex.IsMatch(absolutePath) && t.Item1.Method.Equals(context.Request.Method, StringComparison.OrdinalIgnoreCase)); if (match == null ) return context.Error500("No route found"); try { return match.Item2.Invoke(new RouterContext(context, match.Item1.Regex)) .ContinueWith(t => context.Ok()); } catch (UnauthorizedAccessException) { return context.Error401("401 Not Authorised"); } catch (Exception e) { var message = string.Empty; #if DEBUG message = e.ToString(); #endif return context.Error500(message); } }
public static Task Invoke(IOwinContext context) { var absolutePath = context.Request.Uri.AbsolutePath; var match = Routes.FirstOrDefault(t => t.Item1.Regex.IsMatch(absolutePath) && t.Item1.Method.Equals(context.Request.Method, StringComparison.OrdinalIgnoreCase)); if (match == null) { return(context.Error500("No route found")); } try { return(match.Item2.Invoke(new RouterContext(context, match.Item1.Regex)) .ContinueWith(t => context.Ok())); } catch (UnauthorizedAccessException) { return(context.Error401("401 Not Authorised")); } catch (Exception e) { var message = string.Empty; #if DEBUG message = e.ToString(); #endif return(context.Error500(message)); } }