public function saveAction(Request $request)
 {
     $params = $request->all();
     $params['date'] = Date::conversion($params['date']);
     $request->replace($params);
     unset($params['_token'], $params['q']);
     $routeBack = $request->get('redirect', false);
     if (!$routeBack) {
         $routeBack = 'tasks.new';
         if (isset($params['id']) && (int) $params['id'] > 0) {
             $routeBack = 'tasks.edit';
         }
     }
     if ($request->getMethod() == 'POST') {
         // saving data!
         $isValid = $this->repository->validateRequest($request);
         if (!is_bool($isValid)) {
             $request->session()->flash('message', "Invalid data, please check the following errors: ");
             $request->session()->flash('validationErrros', $isValid);
             $formattedDate = \Datetime::createFromFormat('Y-m-d', $request->get('date'));
             $request->replace(['date' => $formattedDate->format('d/m/Y')]);
             return redirect()->route($routeBack, [$routeBack == 'tasks.edit' ? $params['id'] : null])->withInput()->with('validationErros', $isValid);
         }
         //update
         if ($routeBack == 'tasks.edit') {
             $task = $this->repository->findById($params['id']);
             if (!$task) {
                 $request->session()->flash('message', "Task [{$params['id']}] not found");
                 return redirect('tasks');
             }
             $task = Tasks::findOrNew($params['id']);
             $task->fill($params);
             $task->update();
             $request->session()->flash('message', "Task [{$task->task}] updated successfully!");
             $request->session()->flash('success', true);
             return redirect('tasks');
         }
         //insert
         $tasks = new Tasks();
         $tasks->create($params);
         $request->session()->flash('message', "Successfully created task");
         $request->session()->flash('success', true);
         $redirect = $request->get('redirect', false) != false ? $request->get('redirect') : 'tasks';
         return redirect()->route($redirect);
     }
     $request->session()->flash('message', "Method not allowed");
     return redirect('tasks');
 }