コード例 #1
0
 public override ProblemDetails MapException(ApiProblemDetailsException exception, ProblemDetailsHelper problemDetailsHelper)
 => new ProblemDetails
 {
     HttpStatus         = exception.StatusCode,
     Title              = ProblemDetails.DefaultTitle,
     Detail             = "Probleem bij het contacteren van de GRB WFS-service.",
     ProblemTypeUri     = problemDetailsHelper.GetExceptionTypeUriFor <GrbWfsException>(),
     ProblemInstanceUri = $"{problemDetailsHelper.GetInstanceBaseUri()}/{ProblemDetails.GetProblemNumber()}"
 };
コード例 #2
0
        public override bool HandlesException(ApiProblemDetailsException exception)
        {
            const string nameSpacePlaceHolder = "NAMESPACE_WONT_REGEX_ESCAPE";
            var          typeUri        = ProblemDetails.GetTypeUriFor <GrbWfsException>(nameSpacePlaceHolder);
            var          typeUriPattern = Regex
                                          .Escape(typeUri)
                                          .Replace(nameSpacePlaceHolder, ".*", StringComparison.InvariantCultureIgnoreCase);

            return(new Regex(typeUriPattern).IsMatch(exception?.Details?.ProblemTypeUri ?? string.Empty));
        }
コード例 #3
0
        public override ProblemDetails MapException(ApiProblemDetailsException exception, ProblemDetailsHelper problemDetailsHelper)
        {
            var registryName = ((GoneException)exception).RegistryName;

            return(new ProblemDetails
            {
                ProblemTypeUri = $"urn:be.vlaanderen.basisregisters.api:{registryName}:gone",
                HttpStatus = StatusCodes.Status410Gone,
                Title = ProblemDetails.DefaultTitle,
                Detail = exception?.Message,
                ProblemInstanceUri = $"{problemDetailsHelper.GetInstanceBaseUri()}/{ProblemDetails.GetProblemNumber()}"
            });
        }
コード例 #4
0
        public override ProblemDetails MapException(
            ApiProblemDetailsException exception,
            ProblemDetailsHelper problemDetailsHelper)
        {
            var registryName = ((PreconditionFailedException)exception).RegistryName;

            return(new ProblemDetails
            {
                HttpStatus = StatusCodes.Status412PreconditionFailed,
                Title = ProblemDetails.DefaultTitle,
                Detail = "De If-Match header komt niet overeen met de laatst gekende ETag.",
                ProblemTypeUri = $"urn:be.vlaanderen.basisregisters.api:{registryName}:precondition-failed",
                ProblemInstanceUri = $"{problemDetailsHelper.GetInstanceBaseUri()}/{ProblemDetails.GetProblemNumber()}"
            });
        }
コード例 #5
0
 public override bool HandlesException(ApiProblemDetailsException exception)
 => exception.GetType() == typeof(GoneException);
コード例 #6
0
 public override bool HandlesException(ApiProblemDetailsException exception)
 => exception.GetType() == typeof(PreconditionFailedException);