Junior.Route.AspNetIntegration.ResponseGenerators.ResponseResult.ResponseNotGenerated C# (CSharp) Method

ResponseNotGenerated() public static method

public static ResponseNotGenerated ( ) : ResponseResult
return ResponseResult
        public static ResponseResult ResponseNotGenerated()
        {
            return new ResponseResult(ResponseResultType.ResponseNotGenerated);
        }

Usage Example

Example #1
0
        public Task <ResponseResult> GetResponseAsync(HttpContextBase context, IEnumerable <RouteMatchResult> routeMatchResults)
        {
            context.ThrowIfNull("context");
            routeMatchResults.ThrowIfNull("routeMatchResults");

            RouteMatchResult[] unmatchedResults = routeMatchResults.Where(arg => arg.MatchResult.ResultType == MatchResultType.RouteNotMatched).ToArray();

            if (!unmatchedResults.Any())
            {
                return(ResponseResult.ResponseNotGenerated().AsCompletedTask());
            }

            RouteMatchResult[] unmatchedResultsThatMatchedOnUrlRelativePath = unmatchedResults.Where(arg1 => RouteMatchedUrlRelativePath(arg1.MatchResult)).ToArray();
            int minimumUnmatchedRestrictions = unmatchedResultsThatMatchedOnUrlRelativePath.Any() ? unmatchedResultsThatMatchedOnUrlRelativePath.Min(arg => arg.MatchResult.UnmatchedRestrictions.Count()) : 0;

            RouteMatchResult[] closestMatches = unmatchedResultsThatMatchedOnUrlRelativePath.Where(arg => arg.MatchResult.UnmatchedRestrictions.Count() == minimumUnmatchedRestrictions).ToArray();

            if (closestMatches.Length != 1)
            {
                return(ResponseResult.ResponseNotGenerated().AsCompletedTask());
            }

            RouteMatchResult closestMatch = closestMatches[0];

            IRestriction[]      unmatchedRestrictions = closestMatch.MatchResult.UnmatchedRestrictions.ToArray();
            MethodRestriction[] methodRestrictions    = unmatchedRestrictions.OfType <MethodRestriction>().ToArray();

            if (methodRestrictions.Any())
            {
                IEnumerable <string> methods = methodRestrictions
                                               .Select(arg => arg.Method)
                                               .Distinct(StringComparer.OrdinalIgnoreCase)
                                               .OrderBy(arg => arg);

                return(ResponseResult.ResponseGenerated(new Response().MethodNotAllowed().Header("Allow", String.Join(", ", methods))).AsCompletedTask());
            }
            if (unmatchedRestrictions.OfType <HeaderRestriction <AcceptHeader> >().Any())
            {
                return(ResponseResult.ResponseGenerated(new Response().NotAcceptable()).AsCompletedTask());
            }
            if (unmatchedRestrictions.OfType <HeaderRestriction <AcceptCharsetHeader> >().Any())
            {
                return(ResponseResult.ResponseGenerated(new Response().NotAcceptable()).AsCompletedTask());
            }
            if (unmatchedRestrictions.OfType <HeaderRestriction <AcceptEncodingHeader> >().Any())
            {
                return(ResponseResult.ResponseGenerated(new Response().NotAcceptable()).AsCompletedTask());
            }
            if (unmatchedRestrictions.OfType <HeaderRestriction <ContentEncodingHeader> >().Any())
            {
                return(ResponseResult.ResponseGenerated(new Response().UnsupportedMediaType()).AsCompletedTask());
            }

            return(ResponseResult.ResponseNotGenerated().AsCompletedTask());
        }
All Usage Examples Of Junior.Route.AspNetIntegration.ResponseGenerators.ResponseResult::ResponseNotGenerated