diff --git a/dotnet/AipsCore/Application/Models/Shape/Command/CreateRectangle/CreateRectangleCommandHandler.cs b/dotnet/AipsCore/Application/Models/Shape/Command/CreateRectangle/CreateRectangleCommandHandler.cs index c03b948..d0352f8 100644 --- a/dotnet/AipsCore/Application/Models/Shape/Command/CreateRectangle/CreateRectangleCommandHandler.cs +++ b/dotnet/AipsCore/Application/Models/Shape/Command/CreateRectangle/CreateRectangleCommandHandler.cs @@ -1,24 +1,37 @@ using AipsCore.Application.Abstract.Command; using AipsCore.Domain.Abstract; +using AipsCore.Domain.Common.Validation; using AipsCore.Domain.Models.Shape.External; using AipsCore.Domain.Models.Shape.Sub.Rectangle; using AipsCore.Domain.Models.Shape.ValueObjects; +using AipsCore.Domain.Models.User.External; +using AipsCore.Domain.Models.User.Validation; +using AipsCore.Domain.Models.User.ValueObjects; +using AipsCore.Domain.Models.Whiteboard.External; +using AipsCore.Domain.Models.Whiteboard.Validation; +using AipsCore.Domain.Models.Whiteboard.ValueObjects; namespace AipsCore.Application.Models.Shape.Command.CreateRectangle; public class CreateRectangleCommandHandler : ICommandHandler { private readonly IShapeRepository _shapeRepository; + private readonly IWhiteboardRepository _whiteboardRepository; + private readonly IUserRepository _userRepository; private readonly IUnitOfWork _unitOfWork; - public CreateRectangleCommandHandler(IShapeRepository shapeRepository, IUnitOfWork unitOfWork) + public CreateRectangleCommandHandler(IShapeRepository shapeRepository, IWhiteboardRepository whiteboardRepository, IUserRepository userRepository, IUnitOfWork unitOfWork) { _shapeRepository = shapeRepository; + _whiteboardRepository = whiteboardRepository; + _userRepository = userRepository; _unitOfWork = unitOfWork; } public async Task Handle(CreateRectangleCommand command, CancellationToken cancellationToken = default) { + Validate(command); + var rectangle = Rectangle.Create( command.WhiteboardId, command.AuthorId, @@ -33,4 +46,23 @@ public class CreateRectangleCommandHandler : ICommandHandler