< Summary - MechanicsSoftware — Coverage Report

Information
Class: MechanicsSoftware.Application.UseCases.ServiceOrders.Handlers.StartExecutionHandler
Assembly: MechanicsSoftware.Application
File(s): /home/runner/work/mechanics-software/mechanics-software/src/MechanicsSoftware.Application/UseCases/ServiceOrders/Handlers/StartExecutionHandler.cs
Line coverage
100%
Covered lines: 8
Uncovered lines: 0
Coverable lines: 8
Total lines: 21
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
ExecuteAsync()100%11100%

File(s)

/home/runner/work/mechanics-software/mechanics-software/src/MechanicsSoftware.Application/UseCases/ServiceOrders/Handlers/StartExecutionHandler.cs

#LineLine coverage
 1using MechanicsSoftware.Application.Abstractions;
 2using Microsoft.Extensions.Logging;
 3
 4namespace MechanicsSoftware.Application.UseCases.ServiceOrders.Handlers;
 5
 66public sealed class StartExecutionHandler(IAppDbContext db, IEmailNotifier emailNotifier, ILogger<StartExecutionHandler>
 7{
 8    public async Task<ServiceOrderResponse> ExecuteAsync(
 9        Guid serviceOrderId, CancellationToken cancellationToken = default)
 610    {
 611        var order = await db.ServiceOrders.FindFullAsync(serviceOrderId, cancellationToken);
 12
 413        order.StartExecution();
 14
 215        await db.SaveChangesAsync(cancellationToken);
 16
 217        await emailNotifier.TrySendStatusEmailAsync(db, logger, order, cancellationToken);
 18
 219        return ServiceOrderResponse.From(order);
 220    }
 21}