public ICommandResult Handle(BookEquipmentCommand command) { var equipment = new Equipment(command.Description, command.Status, command.PurchaseDate); AddNotifications(equipment.Notifications); var status = (EEquipmentStatus)_repository.GetStatus(command.Id); if (status != EEquipmentStatus.Free) { AddNotification("Book", "Equipamento indisponível para reserva"); } equipment.Book(); if (Invalid) { return(new CommandResult(false, "Erro ao efetuar reserva", Notifications)); } _repository.Book(equipment); return(new CommandResult(true, "Reserva efetuada com sucesso", null)); }