< Summary

Information
Class: ClutterStock.Domain.Features.Rooms.UpdateRoom.UpdateRoomCommandHandler
Assembly: Domain
File(s): /home/runner/work/ClutterStock/ClutterStock/backend/src/Domain/Features/Rooms/UpdateRoom/UpdateRoomCommandHandler.cs
Tag: 58_25416222083
Line coverage
100%
Covered lines: 11
Uncovered lines: 0
Coverable lines: 11
Total lines: 33
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
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%
HandleAsync()100%22100%

File(s)

/home/runner/work/ClutterStock/ClutterStock/backend/src/Domain/Features/Rooms/UpdateRoom/UpdateRoomCommandHandler.cs

#LineLine coverage
 1using ClutterStock.Contracts.Rooms;
 2using ClutterStock.Domain.Abstractions;
 3using ClutterStock.Domain.Extensions;
 4using Microsoft.AspNetCore.Http;
 5using Microsoft.AspNetCore.Http.HttpResults;
 6using Microsoft.EntityFrameworkCore;
 7
 8namespace ClutterStock.Domain.Features.Rooms.UpdateRoom;
 9
 10public interface IUpdateRoomCommandHandler : ICommandHandler
 11{
 12    Task<Results<Ok<RoomResponse>, NotFound>> HandleAsync(Command command, CancellationToken cancellationToken = default
 13
 14    record Command(int Id, int LocationId, string Name, string? Description);
 15}
 16
 217public class UpdateRoomCommandHandler(IAppDbContext context) : IUpdateRoomCommandHandler
 18{
 19    public async Task<Results<Ok<RoomResponse>, NotFound>> HandleAsync(IUpdateRoomCommandHandler.Command command, Cancel
 20    {
 221        var room = await context.Rooms.FirstOrDefaultAsync(r => r.Id == command.Id, cancellationToken);
 222        if (room is null)
 123            return TypedResults.NotFound();
 24
 125        room.LocationId = command.LocationId;
 126        room.Name = command.Name;
 127        room.Description = command.Description;
 128        room.UpdatedAtUtc = DateTimeOffset.UtcNow;
 29
 130        await context.SaveChangesAsync(cancellationToken);
 131        return TypedResults.Ok(room.ToResponse());
 232    }
 33}