< Summary

Information
Class: Bookings.Infrastructure.RequestHandling.RequestHandler
Assembly: Bookings.Infrastructure
File(s): C:\Code\Bookings\Bookings.Infrastructure\RequestHandling\RequestHandler.cs
Line coverage
100%
Covered lines: 26
Uncovered lines: 0
Coverable lines: 26
Total lines: 40
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Execute()100%22100%

File(s)

C:\Code\Bookings\Bookings.Infrastructure\RequestHandling\RequestHandler.cs

#LineLine coverage
 1using Microsoft.AspNetCore.Http;
 2using Microsoft.AspNetCore.Mvc;
 3
 4namespace Bookings.Infrastructure.RequestHandling
 5{
 6    public abstract class RequestHandler
 7    {
 8        public static async Task<IResult> Execute(Func<IResult> handlerLogic, string operationName, string resourceIdent
 549        {
 10            try
 5411            {
 5412                var result = handlerLogic();
 4213                return result ?? Results.Problem(new ProblemDetails
 4214                {
 4215                    Title = $"{operationName} failed",
 4216                    Detail = $"Handler logic returned null for {operationName} of {resourceIdentifier}",
 4217                    Status = StatusCodes.Status500InternalServerError
 4218                });
 19            }
 620            catch (ArgumentException ex)
 621            {
 622                return Results.Problem(new ProblemDetails
 623                {
 624                    Title = "Invalid request",
 625                    Detail = ex.Message,
 626                    Status = StatusCodes.Status400BadRequest
 627                });
 28            }
 629            catch (Exception ex)
 630            {
 631                return Results.Problem(new ProblemDetails
 632                {
 633                    Title = $"An error occurred during {operationName} of {resourceIdentifier}",
 634                    Detail = ex.Message,
 635                    Status = StatusCodes.Status500InternalServerError
 636                });
 37            }
 5438        }
 39    }
 40}

Methods/Properties

Execute()