/**
  * Mostra la raccolta degli articoli. Se viene specificata una categoria, vengono mostrati solo gli articoli
  * della categoria specificata.
  *
  * @param ArticleRepository $articleRepository
  * @param CategoryRepository $categoryRepository
  * @param Request $request
  * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  * @throws NotFoundException
  */
 public function getArticles(ArticleRepository $articleRepository, CategoryRepository $categoryRepository, Request $request)
 {
     $categories = $categoryRepository->getAll();
     if ($request->has('categoria')) {
         $category = $categoryRepository->findBySlug($request->get('categoria'));
         $articles = $articleRepository->getByCategory($category, $request->get('page', 1), true, true);
     } else {
         $articles = $articleRepository->getAll($request->get('page', 1), true, true);
     }
     return view('front.articles', compact('articles', 'categories'));
 }
 public function testCanDelete()
 {
     $category = $this->saveTestCategory();
     $this->repository->delete($category);
     $this->dontSeeInDatabase('categories', ['name' => 'Test Category', 'slug' => 'test-category']);
 }
 /**
  * Cancella la categoria il cui id è $categoryId.
  *
  * @param CategoryRepository $categoryRepository
  * @param $categoryId
  * @return \Illuminate\Http\RedirectResponse
  */
 public function getDelete(CategoryRepository $categoryRepository, $categoryId)
 {
     try {
         /* @var $category Category */
         $category = $categoryRepository->findById($categoryId);
     } catch (NotFoundException $e) {
         return redirect('admin/categories')->with('error_message', 'La categoria cercata non esiste o non è più disponibile.');
     }
     try {
         $categoryRepository->delete($category);
     } catch (NotDeletedException $e) {
         return redirect('admin/categories')->with('error_message', 'Impossibile elminare la categoria scelta. Riprovare.');
     }
     return redirect('admin/categories')->with('success_message', 'Categoria eliminata correttamente.');
 }