< Summary

Information
Class: planora.Application.Features.Activities.Commands.Delete.DeleteActivityHandler
Assembly: planora.Application
File(s): /home/runner/work/planora/planora/src/planora.Application/Features/Activities/Commands/Delete/DeleteActivityHandler.cs
Tag: 10_15767155620
Line coverage
100%
Covered lines: 10
Uncovered lines: 0
Coverable lines: 10
Total lines: 34
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
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()100%44100%

File(s)

/home/runner/work/planora/planora/src/planora.Application/Features/Activities/Commands/Delete/DeleteActivityHandler.cs

#LineLine coverage
 1using planora.Application.Common;
 2using planora.Application.Interfaces.Mediator;
 3using planora.Domain.Entities;
 4using planora.Domain.Errors;
 5using planora.Domain.Repositories;
 6
 7namespace planora.Application.Features.Activities.Commands.Delete;
 8
 89public sealed class DeleteActivityHandler(IRepository<Activity> repository)
 10    : ICommandHandler<DeleteActivityRequest, Result>
 11{
 12    public async Task<Result> Handle(DeleteActivityRequest request, CancellationToken cancellationToken)
 13    {
 814        var activityId = request.Id;
 15        // Fetch the activity to be deleted
 816        var activityToBeRemoved = await repository.GetByIdAsync(activityId, cancellationToken);
 17
 18        // Check if the activity exists
 819        if (activityToBeRemoved is null)
 20        {
 221            return ActivityError.NotFound(activityId);
 22        }
 23
 24        // Ensure the activity is not in the past
 625        if (activityToBeRemoved.Date < DateTime.UtcNow)
 26        {
 227            return ActivityError.CannotDeletePastActivity(activityId);
 28        }
 29
 430        await repository.DeleteAsync(activityToBeRemoved, cancellationToken);
 31
 232        return Result.Success();
 633    }
 34}