< Summary

Information
Class: FLP.Application.Handlers.Bugs.DeleteBugHandler
Assembly: FLP.Application
File(s): /home/runner/work/FLP.AzureFunctions/FLP.AzureFunctions/FLP.Application/Handlers/Bugs/DeleteBugHandler.cs
Line coverage
81%
Covered lines: 13
Uncovered lines: 3
Coverable lines: 16
Total lines: 53
Line coverage: 81.2%
Branch coverage
50%
Covered branches: 1
Total branches: 2
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
Handle()50%2285.71%

File(s)

/home/runner/work/FLP.AzureFunctions/FLP.AzureFunctions/FLP.Application/Handlers/Bugs/DeleteBugHandler.cs

#LineLine coverage
 1using FLP.Application.Requests.Bugs;
 2using FLP.Application.Validators.Bugs;
 3using FLP.Core.Context.Shared;
 4using FLP.Core.Exceptions;
 5using FLP.Core.Interfaces.Repository;
 6using MediatR;
 7using Microsoft.Extensions.Logging;
 8
 9namespace FLP.Application.Handlers.Bugs;
 10
 11/// <summary>
 12/// Handler for processing DeleteBugRequest to delete a bug from the repository.
 13/// </summary>
 14/// <param name="_uow"></param>
 15/// <param name="_mapper"></param>
 16/// <param name="_logger"></param>
 317public class DeleteBugHandler(IUnitOfWork _uow, /*IMapper _mapper,*/ ILogger<DeleteBugHandler> _logger) : IRequestHandle
 18{
 19    /// <summary>
 20    /// Handles the deletion of a bug based on the provided DeleteBugRequest.
 21    /// </summary>
 22    /// <param name="request"></param>
 23    /// <param name="cancellationToken"></param>
 24    /// <returns></returns>
 25    public async Task<BaseResponse> Handle(DeleteBugRequest request, CancellationToken cancellationToken)
 326    {
 327        cancellationToken.ThrowIfCancellationRequested();
 328        _logger.LogInformation("Handling DeleteBugRequest for Bug ID: {BugId}", request.Id);
 29
 330        var validator = new DeleteBugValidator();
 331        var validationResult = validator.Validate(request);
 32
 333        if (!validationResult.IsValid)
 034        {
 035            _logger.LogWarning("Validation failed for DeleteBugRequest: {Errors}", validationResult.Errors);
 036            return new BaseResponse(false, validationResult.Errors.Select(e => e.ErrorMessage));
 37        }
 38
 39        // Begin a transaction
 340        _uow.BeginTransaction(cancellationToken);
 41
 42        // Delete the bug
 343        await _uow.BugRepository.DeleteAsync(request.Id, cancellationToken);
 44
 45        // Save changes
 146        await _uow.SaveChangesAsync(cancellationToken);
 47
 48        // Commit the transaction
 149        _uow.CommitTransaction(cancellationToken);
 50
 151        return new BaseResponse();
 152    }
 53}