<?php

namespace Autogedal\AutogedalHelper\Controller\Adminhtml\Index;

use Autogedal\AutogedalHelper\Block\Agent as AgentBlock;
use Magento\Sales\Api\OrderRepositoryInterface;
use Magento\Backend\App\Action\Context;
use Magento\Framework\App\Action\HttpGetActionInterface;

class Agent extends \Magento\Backend\App\Action
{
    protected $_orderRepository;
    public function __construct(
        OrderRepositoryInterface $orderRepository,
        Context $context
    )
    {
        parent::__construct($context);
        $this->_orderRepository = $orderRepository;
    }

    public function execute()
    {
        $request = $this->getRequest();

        if ($request->getParam('order_id')) {
            $orderId = $request->getParam('order_id');
            $orderObject = $this->_orderRepository->get($orderId);

            $objectModified = false;
            if ($request->getParam('agent_id')) {
                $orderObject->setData(AgentBlock::ORDER_AGENT_KEY, $request->getParam('agent_id'));
                $objectModified = true;
            }

            if ($request->getParam('source')) {
                $orderObject->setData(AgentBlock::ORDER_SOURCE_KEY, $request->getParam('source'));
                $objectModified = true;
            }

            if ($objectModified) {
                $orderObject->save();
            }
        }
    }
}