< Summary

Information
Class: ClutterStock.Domain.Features.Items.AddItem.AddItemCommandHandler
Assembly: Domain
File(s): /home/runner/work/ClutterStock/ClutterStock/backend/src/Domain/Features/Items/AddItem/AddItemCommandHandler.cs
Tag: 58_25416222083
Line coverage
100%
Covered lines: 15
Uncovered lines: 0
Coverable lines: 15
Total lines: 32
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%
HandleAsync()100%11100%

File(s)

/home/runner/work/ClutterStock/ClutterStock/backend/src/Domain/Features/Items/AddItem/AddItemCommandHandler.cs

#LineLine coverage
 1using ClutterStock.Domain.Abstractions;
 2using ClutterStock.Entities;
 3
 4namespace ClutterStock.Domain.Features.Items.AddItem;
 5
 6public interface IAddItemCommandHandler : ICommandHandler
 7{
 8    Task<Item> HandleAsync(Command command, CancellationToken cancellationToken = default);
 9
 10    record Command(int RoomId, string Name, string? Description, string? Category, string? Notes);
 11}
 12
 813public class AddItemCommandHandler(IAppDbContext context) : IAddItemCommandHandler
 14{
 15    public async Task<Item> HandleAsync(IAddItemCommandHandler.Command command, CancellationToken cancellationToken = de
 16    {
 417        var now = DateTime.UtcNow;
 418        var item = new Item
 419        {
 420            RoomId = command.RoomId,
 421            Name = command.Name,
 422            Description = command.Description,
 423            Category = command.Category,
 424            Notes = command.Notes,
 425            CreatedAtUtc = now
 426        };
 27
 428        context.Items.Add(item);
 429        await context.SaveChangesAsync(cancellationToken);
 430        return item;
 431    }
 32}