public function createAction(Request $request) { $wistia_manager = $this->container->get('wistia_manager'); $em = $this->getDoctrine()->getEntityManager(); $tags_repo = $em->getRepository("BeusoftTagsBundle:Tag"); $category_repo = $em->getRepository("BeusoftCategoriesBundle:Category"); $file_repo = $em->getRepository("BeusoftMediaBundle:Media"); $course_repo = $em->getRepository("BeusoftCoursesBundle:Course"); $user = $this->getUser(); $title = $request->get("title"); $short_description = $request->get("short_description"); $price = $request->get("price"); $skill_level = $request->get("skill_level"); $categories = $request->get("categories"); $tags = $request->get("tags"); $wistia_data = $wistia_manager->createProject($title); $hashed_id = $wistia_data->hashedId; $course_ref_file_id = $request->get("ref_file"); $course_img_id = $request->get("img_file"); $course_id = $request->get("course_id"); $edit = 0; if ($course_id != 0) { $edit = 1; $new_course = $course_repo->find($course_id); } else { $new_course = new Course(); $new_course->setCreator($user); $new_course->setCreatedAt(new \DateTime()); } if ($course_ref_file_id != 0) { $file = $file_repo->find($course_ref_file_id); $new_course->setReferenceFilesMedia($file); } if ($course_img_id != 0) { $img = $file_repo->find($course_img_id); $new_course->setCoverMedia($img); } $new_course->setUser($user); $new_course->setSkillId($skill_level); $new_course->setTitle($title); $new_course->setHashedId($hashed_id); $new_course->setDescription($short_description); $new_course->setPrice($price); $new_course->setStatus(2); if ($price > 0) { $new_course->setIsFree(0); } else { $new_course->setIsFree(1); } $new_course->setUpdatedAt(new \DateTime()); $em->persist($new_course); $em->flush(); if ($course_id != 0) { // $course_tag_repo = $em->getRepository("BeusoftCoursesBundle:CourseTag"); // $course_tags = $course_tag_repo->findBy(array("course" => $course_id)); // foreach ($course_tags as $ct) { // $em->remove($ct); // $em->flush(); // } // // $course_cat_repo = $em->getRepository("BeusoftCoursesBundle:CourseCategory"); // $course_cats = $course_cat_repo->findBy(array("course" => $course_id)); // foreach ($course_cats as $ct) { // $em->remove($ct); // $em->flush(); // } // } $tags_array = explode(",", $tags); foreach ($tags_array as $tag) { $tag = $tags_repo->getTagObject(strtolower(trim($tag)), $user); if ($tag) { $course_tag = new CourseTag(); $course_tag->setCourse($new_course); $course_tag->setTag($tag); $em->persist($course_tag); $em->flush(); $new_course->addTag($course_tag); } } foreach ($categories as $category) { $cat_obj = $category_repo->find($category); if ($cat_obj) { $course_cat = new CourseCategory(); $course_cat->setCourse($new_course); $course_cat->setCategory($cat_obj); $em->persist($course_cat); $em->flush(); $new_course->addCategory($course_cat); } } $em->flush($new_course); return new Response(json_encode(array('edit' => $edit, 'status' => "Done", "id" => $new_course->getId(), "title" => $new_course->getTitle())), 200); }