Sindbad~EG File Manager

Current Path : /home/numerotech/public_html/mcq.urbanedge.co.in/app/controllers/
Upload File :
Current File : //home/numerotech/public_html/mcq.urbanedge.co.in/app/controllers/MCQController.php

<?php

class MCQController extends BaseController {


	/*
	|--------------------------------------------------------------------------
	| Default Home Controller
	|--------------------------------------------------------------------------
	|
	| You may wish to use controllers instead of, or in addition to, Closure
	| based routes. That's great! Here is an example controller method to
	| get you started. To route to this controller, just add the route:
	|
	|	Route::get('/', 'HomeController@showWelcome');
	|
	*/

    // updated by Ganesan on 02-Jan-2022
    public function GetNonExamUpdate($session_id,$session_key,$course_id)
	{
	    try
		{	
		    $enc_course_id = $course_id;
			$user_id = Auth::User()->user_id;
			if(isset($course_id))
			{   
				$course_id = intval(urldecode(Helper::decrypt($course_id)));
				$results = Course::where('course_id',$course_id)->first();
				return View::make('exam_category_update')->with('session_id',$session_id)->with('session_key',$session_key)->with('course_id',$course_id)->with('user_id',$user_id)->with('results' ,$results);
			}
		}
		catch (Exception $e) {
            Log::error('MCQController - GetNonExamUpdate : '.$e->getMessage());
			Session::flash('msg', AppMessage::$GENERAL_ERROR);
           return $this->msg($session_id,$session_key);
        }
	}
	
	
	public function PostNonExamUpdate($session_id,$session_key)
	{
	    try
		{	
		    $course_id            = Input::get('course_id');
		    $user_id              = Input::get('user_id');
		    $is_non_exam_category = Input::get('is_non_exam_category');
			$user_id = Auth::User()->user_id;
			if(isset($course_id))
			{   
			    $user_course = MCQUsersCourses::where('user_id',$user_id)->where('course_id',$course_id)->first();
			    if(isset($user_course))
			    {
			        $user_course->user_id              = $user_id;
    				$user_course->course_id            = $course_id;
    				$user_course->is_non_exam_category = $is_non_exam_category;
    				$user_course->updated_at = date('Y-m-d H:i:s');
    				$user_course->save();   
			    }
			    else
			    {
			        $user_course = new MCQUsersCourses; 
			        $user_course->user_id              = $user_id;
    				$user_course->course_id            = $course_id;
    				$user_course->is_non_exam_category = $is_non_exam_category;
    				$user_course->created_at = date('Y-m-d H:i:s');
    				$user_course->save();
			    }
			    return Redirect::to('/'.$session_id.'/'.$session_key);
			
				// $results = Course::where('course_id',$course_id)->first();
				// return View::make('exam_category_update')->with('course_id',$course_id)->with('user_id',$user_id)->with('results' ,$results);
			}
		}
		catch (Exception $e) {
            Log::error('MCQController - GetNonExamUpdate : '.$e->getMessage());
			Session::flash('msg', AppMessage::$GENERAL_ERROR);
           return $this->msg($session_id,$session_key);
        }
	}
    
    // 



	// update code on June 25 2022
	public function QuestionIndex($course_id)
	{
       
        $answer_status = Input::get('status');
        $session = Sessions::getSession();
        $session_id = 0;
        $session_key = '';
        
        
        if(isset($session))
        {
        	// $in_session_id = $session->session_id;
        	$session_id = $session->session_id;
        	$session_key = $session->session_key;
        }
        else
        {
         	return $this->ClosedPage();
        
        };
      
       
		try
		{	
		    
		    $enc_course_id = $course_id;
			$user_id = Auth::User()->user_id;
			if(isset($course_id))
			{   
				$course_id = intval(urldecode(Helper::decrypt($course_id)));
				
			}

			if(isset($mcq_id))
			{
				$mcq_id = intval(urldecode(Helper::decrypt($mcq_id)));
			}

		
			

			$course  = MCQCourse::find($course_id);
			if(isset($course) )
			{
                if(!Helper::checkBetweenDatetimesFromCurrentDateTime($course->course_start_at,$course->course_end_at))
                {
                    Session::flash('msg', "Session Closed");
                    return $this->msg($session_id,$session_key);
                }
                else
                {
                
                    
                    
                    if(!isset($answer_status))
                    {
                        // $answer_status = "notanswer";   
                        $answer_status = NULL;   
                    }
                    
                    $results = DB::select("call usp_get_user_course_questions(".$session_id." ,".$course_id.",".$user_id." ,'". $answer_status."' )");
                    
                    $courses = MCQCourse::getUserCourses($session->session_id,Auth::User()->user_id,$course_id);
                    
                    return View::make('question_index')->with('course',$course)
                    					->with('session',$session)
                    					->with('course_id',$course_id)
                                        ->with('user_id',$user_id)
                                        ->with('results',$results)
                                        ->with('enc_course_id',$enc_course_id)
                                        ->with('courses',$courses[0])
                                        ->with('answer_status',$answer_status);
				 }
			}
			else
			{
				Session::flash('msg', AppMessage::$GENERAL_ERROR);
           		return $this->msg($session_id,$session_key);	
			}

			
	    } catch (Exception $e) {
            Log::error('MCQController - QuestionIndex : '.$e->getMessage());
			Session::flash('msg', AppMessage::$GENERAL_ERROR);
           return $this->msg($session_id,$session_key);
        }	 
	}
	// end
	
	

	public function index($session_id,$session_key)
	{
	    
	    if(isset($session_key))
	    {
	        Session::put('session_key', $session_key);
	        Session::put('session_id', $session_id);
	    }
	    else
	    {
	        Session::forget('session_key');
	        Session::forget('session_id');
	    }
	    
	    $session = Sessions::getSession();
	   
		if(isset($session))
		{
			if(Auth::check())
			{
				$user = User::find(Auth::User()->user_id);
				if($user->profile_updated_at==null)
				{
					return Redirect::to('profile/'.$session_id.'/'.$session_key);
				}
				else
				{
					// return View::make('index'); // This is already commented
					return $this->userCourses($session_id,$session_key);
				}
			}
			else
			{
				return View::make('login');
			}
			
		}
        else
        {
			// return $this->ClosedPage();
			Session::flash('msg', AppMessage::$EndSession);
			return Redirect::to('msg');
//       			return $this->msg($session_id,$session_key);
        }

	}


	public function userCourses($session_id,$session_key)
	{
	    $session = Sessions::getSession();
	    $user_id = Auth::User()->user_id ;
		$courses = MCQCourse::getUserCourses($session_id,$user_id);
// 		var_dump($courses);exit();
		return View::make('courses')->with('courses',$courses);

	}


	public function MCQRandomGet($course_id,$mcq_id=null,$is_skips = null,$prev_mcq_id = null,$answer_status = null)
	{
	    
	    $session = Sessions::getSession();
        $session_id = 0;
        $session_key = '';
        
        
        if(isset($session))
        {
        	// $in_session_id = $session->session_id;
        	$session_id = $session->session_id;
        	$session_key = $session->session_key;
        }
        else
        {
         	return $this->ClosedPage();
        
        };
        

		try
		{
			$user_id = Auth::User()->user_id;
			
			$answer_status = Input::get('answer_status');
			
			//  $is_skips = null;
			if($answer_status == 'skipped')
			{
			    $is_skips = 1;
			}
			

			if(isset($course_id))
			{
				$course_id = intval(urldecode(Helper::decrypt($course_id)));
			}
			
			if(isset($mcq_id))
			{
				$mcq_id = intval(urldecode(Helper::decrypt($mcq_id)));
			}

			if(Input::get('is_refresh')=="1"){
					$mcq_id=null;
			}
			
			
// 			$session    = Sessions::getSession();
			$course     = MCQCourse::find($course_id);
			if(isset($course) )
			{
				 if(!Helper::checkBetweenDatetimesFromCurrentDateTime($course->course_start_at,$course->course_end_at))
				 {
				 	Session::flash('msg', "Session Closed");
           			return $this->msg($session_id,$session_key);
				 }
			}
			else
			{
				Session::flash('msg', AppMessage::$GENERAL_ERROR);
           		return $this->msg($session_id,$session_key);	
			}

			if(isset($session))
			{
					$in_session_id = $session->session_id;
		    		$in_user_id    = $user_id;
		    		// $in_mcq_limit = null;
		    		$in_mcq_limit = $course->course_question_limit;
		    		$in_mcq_id    = $mcq_id;
		    		$in_course_id = $course_id;
		    		
		  //  	var_dump($in_session_id,$in_course_id,$in_user_id,$in_mcq_id,$answer_status);	 
		  //  	exit;
                $result   = MCQ::usp_get_questions_traverse($in_session_id,$in_course_id,$in_user_id,$in_mcq_id,$answer_status);
				// $result   = MCQ::usp_get_random_MCQ_Course($in_session_id,$in_course_id,$in_user_id,$in_mcq_limit,$in_mcq_id,$is_skips,$prev_mcq_id);


				$mcq = $result["mcq"];
				$prev_mcq_id = $result["previous_mcq_id"];
				$next_mcq_id = $result["next_mcq_id"];
				
				
				// var_dump($in_mcq_limit);
    //             var_dump($in_mcq_id);
                
    //             echo "NEXT QUESTION NUMBER";
    //             var_dump($next_mcq_id);
    //             exit();
				// var_dump($prev_mcq_id);
				// exit();
				
				$mcq_id = $mcq->mcq_id;
				// $mcq->order_no = $mcq->s_no;

				// $in_user_id = $result["next_mcq_id"];

				// $in_mcq_limit = $result["previous_mcq_id"];
				$mcq_count = $in_mcq_limit;
				//$mcq_count = Quiz::where('session_id',$session->session_id)->count();

				$mcq_options=MCQOptions::where('mcq_id',$mcq->mcq_id)->get();

				// $mcq_user_answer =  MCQUserAnswer::where('user_id',$user_id)->where('mcq_id',$mcq_id)->first();


				$opened_at =  Helper::encrypt(date('Y-m-d H:i:s'));
				

	            return View::make('mcq')->with('mcq',$mcq)
	            						->with('session',$session)
	            						->with('mcq_options',$mcq_options)
	                                    ->with('mcq_count',$mcq_count)
	                                    ->with('user_id',$user_id)
	                                   // ->with('mcq_user_answer',$mcq_user_answer)
	                                    ->with('opened_at',$opened_at)
	                                    ->with('course_id',$course_id)
	                                    ->with('course',$course)
	                                    ->with('is_skips',$is_skips)
	                                    ->with('prev_mcq_id',$prev_mcq_id)
	                                    ->with('next_mcq_id',$next_mcq_id)
	                                    ->with('answer_status',$answer_status);
	        }
	        else
	        {
				return $this->ClosedPage();
	        }
	    } catch (Exception $e) {
            Log::error('MCQController - MCQRandomGet : '.$e->getMessage());
			Session::flash('msg', AppMessage::$GENERAL_ERROR);
           return $this->msg($session_id,$session_key);
        }	
     }
    
	public function MCQRandomPost($course_id,$mcq_id)
	{
	    
	    $session = Sessions::getSession();
        $session_id = 0;
        $session_key = '';
        
        
        if(isset($session))
        {
        	// $in_session_id = $session->session_id;
        	$session_id = $session->session_id;
        	$session_key = $session->session_key;
        }
        else
        {
         	return $this->ClosedPage();
        
        };
	    
	    
		try
		{	
			$user_id = Auth::User()->user_id;
			$is_skips        = Input::get('is_skips');
			$submit_btn      = Input::get('submit_btn');
			$is_skip         = Input::get('is_skip'); // integer value
			$answer_status_1 = Input::get('answer_status'); 


			
			$prev_mcq_id =  Input::get('prev_mcq_id');
			$next_mcq_id = Input::get('next_mcq_id');

			if(isset($course_id))
			{
				$course_id = intval(urldecode(Helper::decrypt($course_id)));
			}

			if(isset($mcq_id))
			{
				$mcq_id = intval(urldecode(Helper::decrypt($mcq_id)));
			}

			$mcq_option_id = Input::get('user_option');
			$answer        = Input::get("answer_$mcq_option_id");
			$opened_at     = Input::get('opened_at');
			$opened_at     = isset($opened_at)?Helper::decrypt($opened_at):null;
			$answered_at   = date('Y-m-d H:i:s');
			$timeFirst           = strtotime($opened_at);
			$timeSecond          = strtotime($answered_at);
			$differenceInSeconds = $timeSecond - $timeFirst;
			$duration            = $differenceInSeconds;

			$session = Sessions::getSession();
			$course  = MCQCourse::find($course_id);
			if(isset($course) )
			{
				 if(!Helper::checkBetweenDatetimesFromCurrentDateTime($course->course_start_at,$course->course_end_at))
				 {
				 	Session::flash('msg', "Session Closed");
           			return $this->msg($session_id,$session_key);
				 }
			}
			else
			{
				Session::flash('msg', AppMessage::$GENERAL_ERROR);
           		return $this->msg($session_id,$session_key);	
			}

			
			if(isset($session))
			{
				$in_session_id = $session->session_id;
	    		$in_user_id    = $user_id;
	    		$in_mcq_limit = $course->course_question_limit;
	    		$in_mcq_id    = $mcq_id;
	    		$in_course_id = $course_id;

					

				if(intval(Input::get('is_next'))==0)
				{
					
				
					Input::replace(['is_refresh' => '0']);		

					if(isset($prev_mcq_id) &&  intval($prev_mcq_id) >0)
					{
						//return Redirect::to('mcq/'.Helper::encrypt($mcq_prev->mcq_id).'/'.Helper::encrypt($user_id));
						return $this->MCQRandomGet(Helper::encrypt($course_id),Helper::encrypt($prev_mcq_id),$is_skips,null,$answer_status_1);
					}
					else
					{
						// return Redirect::to('user_info/'.Helper::encrypt($user_id));
						return $this->index();
					}
				}
				else
				{
						 
						 
						 

						$mcq_user_answer =  MCQUserAnswer::where('user_id',$user_id)->where('mcq_id',$mcq_id)->first();
						if(isset($mcq_user_answer))
						{
							if(!isset($mcq_user_answer->mcq_option_id) && intval(Input::get('is_skip'))==0)
							{
								$mcq_user_answer->opened_at= $opened_at;
								$mcq_user_answer->answered_at= $answered_at;
								$mcq_user_answer->mcq_option_id=$mcq_option_id;
								$mcq_user_answer->duration = $duration; 
								$mcq_user_answer->answer = $answer;
								$mcq_user_answer->is_skip = null;
								$mcq_user_answer->save();	
							}
							// code by ganesan june 30,2022 for update already answered questions
							if(isset($mcq_user_answer->mcq_option_id) &&   !isset($mcq_user_answer->is_skip))
							{
								$mcq_user_answer->opened_at  = $opened_at;
								$mcq_user_answer->answered_at= $answered_at;
								$mcq_user_answer->updated_at = $answered_at;
								$mcq_user_answer->mcq_option_id=$mcq_option_id;
								$mcq_user_answer->duration = $duration; 
								$mcq_user_answer->answer = $answer;
								$mcq_user_answer->is_skip = null;
								$mcq_user_answer->save();	
							}
							// end
							
							
							if(intval(Input::get('is_skip'))==1)
							{   
							    $mcq_user_answer->is_skip = 1;
							    $mcq_user_answer->save();	
							}
						}
						else
						{	
							$mcq_user_answer = new MCQUserAnswer();
							$mcq_user_answer->session_id = $session->session_id;
							$mcq_user_answer->course_id = $course_id;
							$mcq_user_answer->mcq_id=$mcq_id;
							$mcq_user_answer->user_id=$user_id;
							$mcq_user_answer->opened_at= $opened_at;
							$mcq_user_answer->answered_at= $answered_at;
							$mcq_user_answer->duration = $duration;
							//Skip button click not save options 
							
							if(intval(Input::get('is_skip'))==0)
							{
								$mcq_user_answer->mcq_option_id=$mcq_option_id;
								$mcq_user_answer->answer = $answer;
							}
							else
							{
							    $mcq_user_answer->is_skip = 1;
							}
							
							$mcq_user_answer->save();	
						}

					
					if(isset($next_mcq_id) &&  intval($next_mcq_id) >0)
					{
						Input::replace(['is_refresh' => '0']);		
				        // return $this->MCQRandomGet(Helper::encrypt($course_id),Helper::encrypt($next_mcq_id),$is_skips,$mcq_id);
				        // if( $answer_status_1 == "skipped")
				        // {
				        // //   $next_mcq_id = 100;   
				        //   $next_mcq_id = DB::statement("SELECT mcq_id FROM mcq_users_answers where user_id=  and course_id = 4 and mcq_id > 255  and is_skip = 1 limit 1;");
				        // }
				        // else
				        // {
				        //     // $next_mcq_id = 1001003;   
				            
				        // }
			
				       return $this->MCQRandomGet(Helper::encrypt($course_id),Helper::encrypt($next_mcq_id),$is_skips,$mcq_id,$answer_status_1);
					}					
					else
					{
					    
					     $course_completed_count = 0;
						 $course_skippted_count = 0;
						 $course_question_count = 0;
						 $course_count  = MCQCourse::getUserCoursesCompletedCount($user_id,$course_id);
						 if(isset($course_count))
						 {
						     $course_completed_count =    $course_count->completed_count;
						     $course_skippted_count =    $course_count->skippted_count;
						     $course_question_count =    $course_count->question_count;
						 }
					    
					   // var_dump($course_completed_count);
					   // var_dump($course_skippted_count);
					   // var_dump($course_question_count);
					   // exit;
					    

				// 		if(intval($course_completed_count) == intval($course->course_question_limit))
				// 		{
				// 			return $this->userCourses();
				// 		}
				// 		else
				// 		{
				
					    if(intval($course_completed_count) != intval($course_question_count))
						{
							return $this->pending($course_id);      
						}
				        elseif(intval($course_skippted_count)>0)
					    {
					        return $this->pending($course_id);      
					    }
					    else
					    {
					        return $this->success();    
					    }
						
				// 		}
						
					}
				}
			
			}
	        else
	        {
		     	return $this->ClosedPage();
				// Session::flash('msg', AppMessage::$EndSession);
    //       		return $this->msg();
	        };
	    } catch (Exception $e) {
            Log::error('MCQController - MCQRandomPost : '.$e->getMessage());
			Session::flash('msg', AppMessage::$GENERAL_ERROR);
           return $this->msg($session_id,$session_key);
        }	 

	}

	public function success()
	{
	    $session = Sessions::getSession();
		return View::make('success')->with('session',$session);
	}
	
	public function pending($course_id)
	{
	    $session = Sessions::getSession();
		return View::make('pending')->with('session',$session)->with('course_id',$course_id);
	}

	// public function PollSeps($mcq_id=null)
	// {
	// 	try
	// 	{
	// 		$session = Sessions::getSession();
	// 		if(isset($session))
	// 		{
	// 			$mcq = null;
	// 			$user_rate = null;
	// 			$pre_order_no 	=  0;
	// 			$next = intval(Input::get('is_next'));


	// 			if($mcq_id==null)
	// 			{
	// 				$mcq=MCQ::orderBy('order_no')->orderBy('mcq_id')->first();					
	// 				$mcq_id= $mcq->mcq_id;
	// 			}
	// 			else
	// 			{
					
	// 				$pre_image_poll 	=  MCQ::find($mcq_id);
	// 				if(isset($pre_image_poll))
	// 				{
	// 					$pre_order_no =  $pre_image_poll->order_no;
	// 				}

					
	// 				if(isset($pre_order_no) && $pre_order_no > 0)
	// 				{
	// 					if($next >0)
	// 					{
	// 						$mcq=MCQ::orderBy('order_no')->orderBy('mcq_id')->where('order_no','>',$pre_order_no)
	// 						->first();							
	// 					}
	// 					else
	// 					{
	// 						$mcq=MCQ::orderBy('order_no')->orderBy('mcq_id')->where('order_no','<',$pre_order_no)
	// 						->first();								
	// 					}
	// 				}
	// 				else
	// 				{
	// 					if($next >0)
	// 					{
	// 						$mcq=MCQ::orderBy('order_no')->orderBy('mcq_id')
	// 						->where('mcq_id','>',$mcq_id)->first();		
	// 					}
	// 					else
	// 					{
	// 						$mcq=MCQ::orderBy('order_no')->orderBy('mcq_id')
	// 						->where('mcq_id','<',$mcq_id)->first();		
	// 					}
	// 				}
					
	// 			}
				
	// 			$img_count = MCQ::where('session_id',$session->session_id)->count();

	// 			// $mcq_options=QuizOptions::where('mcq_id',$mcq->mcq_id)->get();
	// 			if(Auth::check())
	// 			{
	// 				$user_rate = MCQUserRate::where('user_id',Auth::User()->user_id)->where('mcq_id',$mcq_id)
	// 				->first();	
	// 			}

				

	//             return View::make('poll')->with('image_poll',$mcq)
	//             						->with('session',$session)
	//                                     ->with('img_count',$img_count)
	//                                     ->with('user_rate',$user_rate);
	//         }
	//         else
	//         {
	// 			// return $this->ClosedPage();
	// 			Session::flash('msg', AppMessage::$EndSession);
	// 			return Redirect::to('msg');
 //    //       			return $this->msg();
	//         }
	//     } catch (Exception $e) {
 //            Log::error('MCQController - PollSeps : '.$e->getMessage());
	// 		Session::flash('msg', AppMessage::$GENERAL_ERROR);
 //           	return Redirect::to('msg');
 //        }	
 //     }



	public function ClosedPage()
	{
		return View::make('closed');
	}

    public function thankyou($session_id,$session_key)
	{
		if(Session::has('msg'))
		{
			return View::make('thankyou')->with('session_id',$session_id)->with('session_key',$session_key);
		}
		else
		{
			return Redirect::to('/'.$session_id+'/'.$session_key);
		}
		
	}

	public function msg($session_id,$session_key)
	{
		if(Session::has('msg'))
		{
			return View::make('msg')->with('session_id',$session_id)->with('session_key',$session_key);
		}
		else
		{
			return Redirect::to('/'.$session_id.'/'.$session_key);	
		}
	}

	public function checkCourseOpen($course_id, $course = null)
	{
		if(intval($course_id)>0)
		{
			$course = MCQCourse::find($course_id);			
		}


		if(isset($course))
		{
			
		}

		return false;
	}
	
	
    
	
}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists