Esempio n. 1
0
 public static function resolveTaskDependencies(&$task, $categories = null)
 {
     if (!$categories) {
         $categories = Category::getAllFromCache();
     }
     $task->category_name = $categories[$task->category_id - 1]->name;
     $cache_name = __METHOD__ . '_task_id=' . $task->id;
     $task->files = Cache::remember($cache_name, Config::get('constants.CACHE_TIME_DAY'), function () use($task, $cache_name) {
         if (App::environment('local')) {
             Log::debug('Cache: ' . $cache_name);
         }
         return TaskFile::where('task_id', $task->id)->where('deleted', false)->select('id', 'name', 'user_id', 'task_id', 'created_at', 'updated_at')->get();
     });
     $task->solutions = Solution::getTaskSolutionsDependencies($task->id);
 }
 public function createOrEdit(Request $request)
 {
     $this->validate($request, ['name' => 'required|max:60|min:4', 'author' => 'required|max:60|min:4', 'description' => 'max:500', 'category_id' => 'required|numeric', 'files.*.name' => 'required|min:2|max:60', 'files.*.data' => 'required|min:2|max:1000000'], ['files' => 'test']);
     $category = Category::where('id', $request->input('category_id'))->first();
     if (!$category) {
         App::abort(406);
     }
     $task_id = $request->input('task_id');
     $task = null;
     if (!empty($task_id) && is_numeric($task_id)) {
         $task = Task::where('id', $task_id)->where('user_id', $request->user()->id)->where('deleted', false)->first();
         if (!$task) {
             abort(406);
         }
         DB::table('task_files')->where('task_id', $task_id)->where('user_id', $request->user()->id)->update(array('deleted' => true));
     } else {
         $task_id = null;
         $task = new Task();
         Statistic::AddTask();
     }
     $task->name = $request->input('name');
     $task->author = $request->input('author');
     $task->description = $request->input('description');
     $task->category_id = $request->input('category_id');
     $task->user_id = $request->user()->id;
     $filesArray = $request->input('files');
     $pass = $task->save();
     $this->clearCache($task);
     if (is_array($filesArray)) {
         foreach ($filesArray as $file) {
             $taskFile = new TaskFile();
             $taskFile->name = $file['name'];
             $taskFile->data = $file['data'];
             $taskFile->user_id = $request->user()->id;
             $taskFile->task_id = $task->id;
             if (!$taskFile->save()) {
                 $pass = false;
             }
         }
     }
     if ($pass) {
         Alert::setSuccessAlert(Lang::get('app.task_saved'));
     } else {
         Log::alert(__METHOD__ . '(' . __FILE__ . ')', array('task_id' => $task->id, 'user_id' => Auth::user()->id));
         Alert::setErrorAlert(Lang::get('app.unknown_error'));
     }
     return redirect()->action('HomeController@index');
 }