public function store(IndexListener $listener)
    {
        $model = $this->repository->makeModel()->getModel();
        $form  = $this->presenter->getForm($model)->onCreate();
        if (!$form->isValid()) {
            return $listener->storeValidationFailed($form->getMessageBag());
        }
        try {
            $this->repository->store(Input::all());
        } catch (Exception $ex) {
            return $listener->createFailed();
        }
        return $listener->createSuccess();
    }