Пример #1
0
        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);
            }
        }
Пример #2
0
        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));
            }
        }