/**
  * @param $id
  * @return \Illuminate\Http\RedirectResponse
  *
  */
 private function storeORUpdate(Request $request, Course $course)
 {
     $this->validate($request, ['institution' => 'required|integer', 'courseName' => 'required|max:64', 'description' => 'required|min:10', 'price' => 'numeric|required|min:0|max:9999', 'startDate' => 'required|date', 'duration' => 'required|min:0|max:480|integer', 'participantNum' => 'required|min:1|max:50|Integer']);
     $institution = Institution::find($request->institution);
     #TODO validate the institute here.
     #$this->validator->after(function($validator) {
     #    if ($this->somethingElseIsInvalid()) {
     #        $validator->errors()->add('field', 'Something is wrong with this field!');
     #    }
     #});
     $course->institution()->associate($institution);
     $course->courseName = $request->courseName;
     $course->description = $request->description;
     $course->price = $request->price;
     $course->startDate = $request->startDate;
     $course->duration = $request->duration;
     $course->participantNum = $request->participantNum;
     $course->user()->associate(Auth::user());
     if ($course->save()) {
         \Session::flash('flash_message', "Der Kurs wurde erfolgreich gespeichert");
         \Session::flash('flash_message_type', "success");
         return redirect()->action('CourseController@show', [$course->id]);
     } else {
         return Redirect::back()->withError("Der Kurs konnte leider nicht gespeichert werden.")->withInput();
     }
 }