< Summary

Information
Class: Bookings.Api.Bookings.BookingHandlers
Assembly: Bookings.Api
File(s): C:\Code\Bookings\Bookings.Api\Bookings\BookingHandlers.cs
Line coverage
84%
Covered lines: 45
Uncovered lines: 8
Coverable lines: 53
Total lines: 61
Line coverage: 84.9%
Branch coverage
50%
Covered branches: 9
Total branches: 18
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Create(...)50%2293.33%
Update(...)50%4488.23%
Update(...)50%4488.88%
Delete(...)50%4490%
Delete(...)50%4490%
Get(...)100%210%
Get(...)100%210%

File(s)

C:\Code\Bookings\Bookings.Api\Bookings\BookingHandlers.cs

#LineLine coverage
 1using Bookings.Domain;
 2using Bookings.Infrastructure.RequestHandling;
 3
 4namespace Bookings.Api.Bookings
 5{
 6    public static class BookingHandlers
 7    {
 8        public static Task<IResult> Create(BookingRequest request, IBookingsRepository repository) =>
 189        RequestHandler.Execute(() =>
 1810        {
 1811            var booking = repository.Create(new Booking(
 1812                request.Description,
 1813                request.Type,
 1814                new DateRange(request.Start, request.End),
 1815                request.Email));
 1816
 1817            if (booking.Value is null)
 018                return null!;
 1819
 1820            return Results.Created($"/bookings/", new BookingResult(
 1821                booking.Key, booking.Value.Description, booking.Value.Type, booking.Value.Period, booking.Value.Email));
 2422        }, "Create", request.ToString());
 2423
 24        public static Task<IResult> Update(Guid id, BookingRequest request, IBookingsRepository repository) =>
 225            RequestHandler.Execute(() =>
 626            {
 627                if (id == Guid.Empty)
 428                    throw new ArgumentException("Invalid id");
 229
 630                var updated = repository.Update(id, new Booking(
 631                    request.Description,
 632                    request.Type,
 633                    new DateRange(request.Start, request.End),
 634                    request.Email));
 635
 636                if (updated.Value is null)
 437                    return Results.NoContent();
 238
 639                return Results.Ok(new BookingResult(
 640                    updated.Key, updated.Value.Description, updated.Value.Type, updated.Value.Period, updated.Value.Emai
 841            }, "Update", id.ToString());
 442
 843        public static Task<IResult> Delete(Guid id, IBookingsRepository repository) =>
 244            RequestHandler.Execute(() =>
 245            {
 646                if (id == Guid.Empty)
 447                    throw new ArgumentException($"Invalid id {id}");
 648
 249                var deleted = repository.Delete(id);
 650
 651                return deleted.Value is null ? Results.NoContent() : Results.Ok(new BookingResult(
 652                    deleted.Key, deleted.Value.Description, deleted.Value.Type, deleted.Value.Period, deleted.Value.Emai
 853            }, "Delete", id.ToString());
 454
 855        public static Task<IResult> Get(IBookingsRepository repository) =>
 056            RequestHandler.Execute(() =>
 057            {
 058                return Results.Ok(repository.GetAll());
 059            }, "Get", "All");
 060    }
 061}