예제 #1
0
        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));
        }