<?php

namespace App\Traits;
use App\Models\Questionslibrary;
use App\Models\TaskQuestionslibrary;
use App\Models\QuestionFormats;
use App\Models\QuestionOptions;
use App\Models\Questiontype;
use App\Models\Medium;
use App\Models\Loid;
use App\Models\TaskQuestionOptions;
use App\Models\TaskMappedNodes;
use App\Models\Tasks;
use Session;


trait QuestionStem
{
   

    public function questionstem($method,$id)
    {
        if($method=='create')
        $data = new Questionslibrary;
        else
        $data = Questionslibrary::where('id', $id)->with('questionexplaination', 'questionoption', 'elotag','questionFormat')->first();
        
        return view('questionslibrary.question_stem',compact('data','method'));
    }

    public function taskquestionstem($method,$id)
    {
        if($method=='create')
        $data = new TaskQuestionslibrary;
        else
        $data = TaskQuestionslibrary::where('id', $id)->with('questionexplaination', 'questionoption', 'elotag','questionFormat')->first();
        
        return view('questionslibrary.task_question_stem',compact('data','method'));
    }

    public function taskquestionstemTransalation($method,$id)
    {
        $method="view";
        $data = TaskQuestionslibrary::where('id', $id)->with('questionexplaination', 'questionoption', 'elotag','questionFormat')->first();
        $question_format = QuestionFormats::where('id',$data->question_format_id)->first();
        
        $question_types = Questiontype::whereIn('id',explode(",",$data->question_type_id))->get();
        
        $question_type_names = '';
        foreach ($question_types as $key => $value) {
            $question_type_names.=$value->name.",";
        }
        $question_type_names=rtrim($question_type_names, ",");
        return view('questionslibrary.task__translation_question_stem',compact('data','method','question_type_names','question_format'));
    }

    public function taskquestionstemTransalationLibrary($method,$id)
    {
        $method="view";
        $data = Questionslibrary::where('id', $id)->with('questionexplaination', 'questionoption', 'elotag','questionFormat')->first();
        $question_format = QuestionFormats::where('id',$data->question_format_id)->first();
        
        $question_types = Questiontype::whereIn('id',explode(",",$data->question_type_id))->get();
        
        $question_type_names = '';
        foreach ($question_types as $key => $value) {
            $question_type_names.=$value->name.",";
        }
        $question_type_names=rtrim($question_type_names, ",");
        return view('questionslibrary.task__translation_question_stem',compact('data','method','question_type_names','question_format'));
    }

    public function showQuestionFormat($format_id,$question_id,$f_medium_id)
    {
       
        $method = "create";
        $model_method = "translation";
       
        //$data = new TaskQuestionslibrary;
        $data = Questionslibrary::where('id', $question_id)->with('questionexplaination', 'questionoption', 'elotag','questionFormat')->first();
        
        if($question_id!=0)
        {
        $question_lib_question_id = $data->question_id;
        $original_medium_code = substr($question_lib_question_id, -2);
        $original_question_id = substr($question_lib_question_id, 0, -2);
        $medium_name = Medium::where('id', $f_medium_id)->first();
        $dest_medium_code = $medium_name->medium_code;//config('mediums.'.$medium_name->name);
        

        $translated_question_data = Questionslibrary::where('question_id', $original_question_id.$dest_medium_code)->with('questionexplaination', 'questionoption', 'elotag', 'users','questionFormat')->first();
        

        $question_format = QuestionFormats::where('id',$data->question_format_id)->first();
        
        $question_types = Questiontype::whereIn('id',explode(",",$data->question_type_id))->get();
        
        $question_type_names = '';
        foreach ($question_types as $key => $value) {
            $question_type_names.=$value->name.",";
        }
        $question_type_names=rtrim($question_type_names, ",");
        $data = $translated_question_data;
        }
        else
        {
            $question_format = QuestionFormats::where('id',$format_id)->first();
        
            $question_types = Questiontype::whereIn('id',explode(",",@$data->question_type_id))->get();
            $question_type_names = '';
            foreach ($question_types as $key => $value) {
                $question_type_names.=$value->name.",";
            }
            $question_type_names=rtrim($question_type_names, ",");
        }
       // dd($data);
        
        return view('questionslibrary.translation_question_stem',compact('data','model_method','method','format_id','question_type_names','question_format'));
    }



    public function storeOption($datas,$question_id)
    {
        $question_format = QuestionFormats::where('id',$datas->questionformat_id)->first();
        $node_name = Loid::where('id',$datas->node_id)->first();
        $node_name = $node_name->name;
        /* Mcq & match the following Format questions options storing */
        if($datas->questionformat_id==1)
        {
            $letters = range('a', 'z');
            for($i=1;$i<=$question_format->no_of_options;$i++)
            {
                $leter =$letters[$i-1];
                $opt_file_url = "opt_file_url_".$leter;
                $opt_audio_file_url = "mcq_option_file_audio_url_".$leter;
                /* storing question option */
                $data = new QuestionOptions;
                $data->questionslibraries_id  = $question_id;
                $data->option = str_replace('&nbsp;', ' ', strip_tags(html_entity_decode($datas->$leter,ENT_QUOTES | ENT_HTML5, 'UTF-8')));
                $data->option_type = $datas->option_type;
                if($datas->option_type==2)
                $data->option_file = localtos3($datas->$opt_file_url,'Content/Main/Task_Resources/'.$node_name.'/');
                if($datas->option_type==3)
                $data->option_file=localtos3($datas->$opt_audio_file_url,'Content/Main/Task_Resources/'.$node_name.'/');

                

                if($question_format->evidence_require==1)
                {
                    $opt_explanation_id = "opt_explanation_id_".$leter;
                    $opt_evidence_id = "opt_evidence_show_id_".$leter;
                    if($datas->$opt_explanation_id == 1)
                    {
                        
                        $evc_file_type = "option_explanation_type";
                        $evc_file_url = "evc_file_url_".$leter;
                        $evc_file_pdf_url = "evc_file_pdf_url_".$leter;
                        $explanation_text = "explanation_text".$leter;
                        $evc_file_audio_url = "evc_file_audio_url_".$leter;
                        $evc_video_url = "evc_video_url_".$leter;
                       
                        $data->explanation_file_type=$datas->$evc_file_type;
                        if($datas->$evc_file_type==10)
                            $data->explanation_file_url=$datas->$evc_video_url;
                        elseif($datas->$evc_file_type==12)
                            $data->explanation_file_url=localtos3($datas->$evc_file_audio_url,'Content/Main/Task_Resources/'.$node_name.'/');
                        elseif($datas->$evc_file_type==13)
                            $data->explanation_text=str_replace('&nbsp;', ' ', strip_tags(html_entity_decode($datas->$explanation_text,ENT_QUOTES | ENT_HTML5, 'UTF-8')));
                        elseif($datas->$evc_file_type==14)
                        {
                            $data->explanation_file_url=localtos3(str_replace('.png', '.docx', $datas->$evc_file_pdf_url),'Content/Main/Task_Resources/'.$node_name.'/');
                            $data->option_thumbnail=localtos3($datas->$evc_file_pdf_url,'Content/Main/Task_Resources/'.$node_name.'/');
                        }
                        else
                            $data->explanation_file_url=localtos3($datas->$evc_file_url,'Content/Main/Task_Resources/'.$node_name.'/');
                       
                    }
                    if($datas->$opt_evidence_id == 1)
                    {
                        $evc_vari = "evc_".$leter;
                        $evc_dec_vari = "evc_dec_".$leter;
                        $data->evidence_type_id=$datas->$evc_vari;
                        $data->evidence_description=str_replace('&nbsp;', ' ', strip_tags(html_entity_decode($datas->$evc_dec_vari,ENT_QUOTES | ENT_HTML5, 'UTF-8')));
                    }
                }
                if ($datas->correct_answer == $letters[$i-1]) {
                    $data->is_correct_answer = 1;
                } else {
                    $data->is_correct_answer = 0;
                }
                $data->save();   
            }
        }
        /* End of mcq question format */

        /* Start of Fill in the blanks question format */
        if($datas->questionformat_id==2)
        {
            $splitdata = explode(" ",$datas->fillinblanks);
            $answer_statment = $datas->fillinblankanswer;
            $statement_question = "";
            foreach($splitdata as $key => $value){
                if(isset($answer_statment[$key])){
                    $statement_question .= '........ ';
                }else{
                    $statement_question .= $value." ";
                } 
            }
        

            $data = new QuestionOptions;
            $data->questionslibraries_id  = $question_id;
            $data->statement = $datas->fillinblanks;
            $data->statement_question = $statement_question;
            $data->statement_answer = json_encode($answer_statment);
            $data->save();
        
        }
        /* End of Fill in the blanks question format */
        /* Start of match the following question format */

        if($datas->questionformat_id==3)
        {
            $letters = range('a', 'z');
            for($i=1;$i<=$question_format->no_of_options;$i++)
            {
                $leter =$letters[$i-1];
                $res_vari = "res_opt_".$leter;
                $opt_file_url = "opt_file_url_".$leter;
                $res_file_url = "res_opt_file_url".$leter;
                $exp_file_image_url = "matchexp_file_image_url".$leter;
                $exp_file_document_url = "matchexp_file_document_url".$leter;
                /* storing question option */
                $data = new QuestionOptions;
                $data->questionslibraries_id  = $question_id;
                $data->option = str_replace('&nbsp;', ' ', strip_tags(html_entity_decode($datas->$leter,ENT_QUOTES | ENT_HTML5, 'UTF-8')));
                $data->option_type = $datas->option_type;
                $data->respective_option_type = $datas->right_option_type;
                $data->explanation_file_type = $datas->match_explanation_type;
                $data->match_options = 1;
                $data->respective_option = str_replace('&nbsp;', ' ', strip_tags(html_entity_decode($datas->$res_vari,ENT_QUOTES | ENT_HTML5, 'UTF-8')));
                $data->respective_option_file = localtos3($datas->$res_file_url,'Content/Main/Task_Resources/'.$node_name.'/');
                if($datas->match_explanation_type==11)
                    $data->explanation_file_url = localtos3($datas->$exp_file_image_url,'Content/Main/Task_Resources/'.$node_name.'/');
                elseif($datas->match_explanation_type==14)
                    $data->explanation_file_url = localtos3($datas->$exp_file_image_url,'Content/Main/Task_Resources/'.$node_name.'/');
                else
                    $data->explanation_file_url = NULL;

                $data->option_file = localtos3($datas->$opt_file_url,'Content/Main/Task_Resources/'.$node_name.'/');
                $data->save();
                
            }
        }
         /* End of match the following question format */

       
         /* Start of Arrange the following question format */

        if($datas->questionformat_id==4 || $datas->questionformat_id==13)
        {
           
            $letters = range('a', 'z');
            for($i=1;$i<=$question_format->no_of_options;$i++)
            {
                
                $leter =$letters[$i-1];
                $opt_file_url = "opt_file_url_".$leter;

                /* storing question option */

                if($datas->$leter!='' || $datas->$opt_file_url)
                {
                    $data = new QuestionOptions;
                    $data->questionslibraries_id  = $question_id;
                    $data->option_type = $datas->option_type;
                    
                    if($datas->option_type==1)
                        $data->option = str_replace('&nbsp;', ' ', strip_tags(html_entity_decode($datas->$leter,ENT_QUOTES | ENT_HTML5, 'UTF-8')));
                    else
                        $data->option_file = localtos3($datas->$opt_file_url,'Content/Main/Task_Resources/'.$node_name.'/');
                    $data->save();
                }
            }

        
        }
        /* End of Arrange the following question format */

        /* Start of One word question format */
        if($datas->questionformat_id==5)
        {
                $data = new QuestionOptions;
                $data->questionslibraries_id  = $question_id;
                $data->option = '';
                $data->option_file = '';
                $data->match_options = '';
                $data->respective_option = '';
                $data->respective_option_file = '';
                $data->respective_option_file = '';
                $data->save();
        }
        /* End of One word question format */

        /* Start of Error Analysis question format */
        if($datas->questionformat_id==6)
        {


            foreach($datas->step as $k => $val)
            {
                if(isset($datas->answer[$k]))
                {
                    $data = new QuestionOptions;
                    $data->questionslibraries_id  = $question_id;
                    $data->option = $val;
                    $data->option_file = localtos3(@$datas->optimage_media_url[$k],'Content/Main/Task_Resources/'.$node_name.'/');
                    $data->correct_answer_type = null;
                    if($datas->answer[$k]==2)
                    $data->correct_answer_type = $datas->correct_answer_type[$k];
                    
                    $data->correct_answer_text = str_replace('&nbsp;', ' ', strip_tags(html_entity_decode($datas->correct_answer_text[$k],ENT_QUOTES | ENT_HTML5, 'UTF-8')));
                    $data->correct_answer_media_url = localtos3($datas->correct_answer_media_url[$k],'Content/Main/Task_Resources/'.$node_name.'/');
                    $data->match_options = '';
                    $data->is_correct_answer = $datas->answer[$k];
                    $data->save();
                }
            }

            // $letters = range('a', 'z');
            // for($i=1;$i<=$question_format->no_of_options;$i++)
            // {
            //     $leter =$letters[$i-1];
            //     $res_vari = "res_opt_".$leter;
            //     $opt_file_url = "image_media_url_".$leter;
            //     $answer = "answer_".$i;
            //     $answer_type = "correcr_answer_type_".$i;
            //     $answer_text = "correct_answer_text_".$i;
            //     $answer_media_url = "correct_answer_media_url_".$i;
               
            //     /* storing question option */
            //     if($datas->$leter!='')
            //     {
            //         $data = new QuestionOptions;
            //         $data->questionslibraries_id  = $question_id;
            //         $data->option = $datas->$leter;
            //         $data->option_file = $datas->$opt_file_url;
            //         $data->correct_answer_type = null;
            //         $data->correct_answer_text = null;
            //         $data->correct_answer_media_url = null;
            //         if($datas->$answer==2)
            //         {
            //         $data->correct_answer_type = $datas->$answer_type;
            //         if($datas->$answer_type==1)
            //         {
            //             $data->correct_answer_text = $datas->$answer_text;
            //             $data->correct_answer_media_url = null;
            //         }
            //         else
            //         {
            //             $data->correct_answer_text = null;
            //             $data->correct_answer_media_url = $datas->$answer_media_url;
            //         }
                    
                    
            //         }
            //         $data->match_options = '';
            //         $data->is_correct_answer = $datas->$answer;
            //         $data->save();
            //     }
            // }
        }
         /* End of Error Analysis question format */

         /* Start of Error Analysis question format */
        if($datas->questionformat_id==7)
        {
            $letters = range('a', 'z');
            for($i=1;$i<=$question_format->no_of_options;$i++)
            {
                $leter =$letters[$i-1];
                $res_vari = "res_opt_".$leter;
                $opt_file_url = "image_media_url_".$leter;
                $option_type = "option_type_".$leter;
                $disoption_type = "distractor_option_type_".$leter;
                $answer = "movable_".$i;
                $distractor_text = "distractor_".$leter;
                $distractor_url = "distractor_image_media_url_".$leter;
               
                /* storing question option */
                $data = new QuestionOptions;
                $data->questionslibraries_id  = $question_id;
                $data->option = $datas->$leter;
                $data->option_type = $datas->$option_type;
                $data->option_file = localtos3($datas->$opt_file_url,'Content/Main/Task_Resources/'.$node_name.'/');
                $data->match_options = '';
                $data->movable_option = $datas->$answer;
                $data->distractor_type = $datas->$disoption_type;
                $data->distractor_text = $datas->$distractor_text;
                $data->distractor_url = localtos3($datas->$distractor_url,'Content/Main/Task_Resources/'.$node_name.'/');
                $data->save();
                
            }
        }
         /* End of Error Analysis question format */

          /* Start of subjective question format */
        // if($datas->questionformat_id==7)
        // {
        //     $letters = range('a', 'z');
        //     for($i=1;$i<=$question_format->no_of_options;$i++)
        //     {
        //         $leter =$letters[$i-1];
        //         $res_vari = "res_opt_".$leter;
        //         $opt_file_url = "image_media_url_".$leter;
        //         $answer = "movable_".$i;
               
        //         /* storing question option */
        //         $data = new QuestionOptions;
        //         $data->questionslibraries_id  = $question_id;
        //         $data->option = $datas->$leter;
        //         $data->option_file = $datas->$opt_file_url;
        //         $data->match_options = '';
        //         $data->movable_option = $datas->$answer;
        //         $data->save();
                
        //     }
        // }
         /* End of subjective question format */

        if($datas->questionformat_id==10)
        {

            foreach ($datas->steps as $key => $value) {

                $data = new QuestionOptions;
                $data->questionslibraries_id  = $question_id;
                $data->option = $value;
                $data->option_file = '';
                $data->match_options = '';
                $data->respective_option = '';
                $data->respective_option_file = '';
                $data->respective_option_file = '';
                $data->save();
            }
            
        }

       

        
    }

    public function taskOptionStore($datas,$question_id)
    {
        
        $question_format = QuestionFormats::where('id',$datas->questionformat_id)->first();
        $question_detail = TaskQuestionslibrary::where('id',$question_id)->first();
        $tasks_detail = Tasks::where('id',$question_detail->task_id)->first();


        
        if(Session::get('product_login_user')==22)
        {
            if($tasks_detail->medium_id != $question_detail->medium_id)
            {
                $created_question = TaskQuestionslibrary::where('id',$question_detail->question_libid)->first();
                $project_node = TaskMappedNodes::with('ProjectNodes')->where('task_id',$question_detail->task_id)->where('project_node_id',$question_detail->project_node_id)->first();
                $project_node_name = $project_node->ProjectNodes->node_id; 
                $project_node_id = $project_node->ProjectNodes->id;
                $node_name = $project_node_name;
            }
            else
            {
                $created_question = TaskQuestionslibrary::where('id',$question_detail->question_libid)->first();
                $project_node = TaskMappedNodes::with('ProjectNodes')->where('task_id',$question_detail->task_id)->where('project_node_id',$question_detail->project_node_id)->first();
                $project_node_name = $project_node->ProjectNodes->node_id; 
                $project_node_id = $project_node->ProjectNodes->id;
                $node_name = $project_node_name;
            }
        }
        else
        {
            $node_name = Loid::where('id',$question_detail->node_id)->first();
            $node_name = $node_name->name;
        }
        /* Mcq & match the following Format questions options storing */
        if($datas->questionformat_id==1)
        {
            $letters = range('a', 'z');
            for($i=1;$i<=$question_format->no_of_options;$i++)
            {
                $leter =$letters[$i-1];
                $opt_file_url = "opt_file_url_".$leter;
                $opt_audio_file_url = "mcq_option_file_audio_url_".$leter;
                /* storing question option */
                $data = new TaskQuestionOptions;
                $data->questionslibraries_id  = $question_id;
                $data->option = str_replace('&nbsp;', ' ', strip_tags(html_entity_decode($datas->$leter,ENT_QUOTES | ENT_HTML5, 'UTF-8')));
                $data->option_type = $datas->option_type;
                //$data->option = $datas->$leter;
                // if($datas->option_type==2)
                // $data->option_file = $datas->$opt_file_url;
                // if($datas->option_type==3)
                // $data->option_file=$datas->$opt_audio_file_url;

                if($datas->option_type==2)
                $data->option_file = (Session::get('product_login_user')==22 && $datas->$opt_file_url!='') ? copyFileToS3($datas->$opt_file_url,'Content/Main/Task_Resources/'.$node_name.'/') : localtos3($datas->$opt_file_url,'Content/Main/Task_Resources/'.$node_name.'/');
                if($datas->option_type==3)
                $data->option_file=(Session::get('product_login_user')==22 && $datas->$opt_audio_file_url!='') ? copyFileToS3($datas->$opt_audio_file_url,'Content/Main/Task_Resources/'.$node_name.'/') : localtos3($datas->$opt_audio_file_url,'Content/Main/Task_Resources/'.$node_name.'/');

                

                if($question_format->evidence_require==1)
                {
                    $opt_explanation_id = "opt_explanation_id_".$leter;
                    $opt_evidence_id = "opt_evidence_show_id_".$leter;
                    if($datas->$opt_explanation_id == 1)
                    {
                        
                        $evc_file_type = "option_explanation_type";
                        $evc_file_url = "evc_file_url_".$leter;
                        $evc_file_pdf_url = "evc_file_pdf_url_".$leter;
                        $explanation_text = "explanation_text".$leter;
                        $evc_file_audio_url = "evc_file_audio_url_".$leter;
                        $evc_video_url = "evc_video_url_".$leter;
                       
                        $data->explanation_file_type=$datas->$evc_file_type;
                        if($datas->$evc_file_type==10)
                            $data->explanation_file_url=$datas->$evc_video_url;
                        elseif($datas->$evc_file_type==12)
                            $data->explanation_file_url=$data->media_file_url = (Session::get('product_login_user')==22 && $datas->$evc_file_audio_url!='') ? copyFileToS3($datas->$evc_file_audio_url,'Content/Main/Task_Resources/'.$node_name.'/') : localtos3($datas->$evc_file_audio_url,'Content/Main/Task_Resources/'.$node_name.'/');
                        elseif($datas->$evc_file_type==13)
                            $data->explanation_text=str_replace('&nbsp;', ' ', strip_tags(html_entity_decode($datas->$explanation_text,ENT_QUOTES | ENT_HTML5, 'UTF-8')));
                        elseif($datas->$evc_file_type==14)
                        {
                            $data->explanation_file_url=(Session::get('product_login_user')==22 && $datas->$evc_file_pdf_url!='') ? copyFileToS3(str_replace('.png', '.docx', $datas->$evc_file_pdf_url),'Content/Main/Task_Resources/'.$node_name.'/') : localtos3(str_replace('.png', '.docx', $datas->$evc_file_pdf_url),'Content/Main/Task_Resources/'.$node_name.'/');
                            $data->option_thumbnail=(Session::get('product_login_user')==22 && $datas->$evc_file_pdf_url!='') ? copyFileToS3($datas->$evc_file_pdf_url,'Content/Main/Task_Resources/'.$node_name.'/') : localtos3($datas->$evc_file_pdf_url,'Content/Main/Task_Resources/'.$node_name.'/'); 
                        }
                        else
                            $data->explanation_file_url=(Session::get('product_login_user')==22 && $datas->$evc_file_url!='') ? copyFileToS3($datas->$evc_file_url,'Content/Main/Task_Resources/'.$node_name.'/') : localtos3($datas->$evc_file_url,'Content/Main/Task_Resources/'.$node_name.'/');
                       
                    }
                    if($datas->$opt_evidence_id == 1)
                    {
                        $evc_vari = "evc_".$leter;
                        $evc_dec_vari = "evc_dec_".$leter;
                        $data->evidence_type_id=$datas->$evc_vari;
                        $data->evidence_description=str_replace('&nbsp;', ' ', strip_tags(html_entity_decode($datas->$evc_dec_vari,ENT_QUOTES | ENT_HTML5, 'UTF-8')));
                    }
                }
                if ($datas->correct_answer == $letters[$i-1]) {
                    $data->is_correct_answer = 1;
                } else {
                    $data->is_correct_answer = 0;
                }
                $data->save();   
            }
        }
        /* End of mcq question format */

        /* Start of Fill in the blanks question format */
        if($datas->questionformat_id==2)
        {
            $splitdata = explode(" ",$datas->fillinblanks);
            $answer_statment = $datas->fillinblankanswer;
            $statement_question = "";
            foreach($splitdata as $key => $value){
                if(isset($answer_statment[$key])){
                    $statement_question .= '........ ';
                }else{
                    $statement_question .= $value." ";
                } 
            }
        

            $data = new TaskQuestionOptions;
            $data->questionslibraries_id  = $question_id;
            $data->statement = $datas->fillinblanks;
            $data->statement_question = $statement_question;
            $data->statement_answer = json_encode($answer_statment);
            $data->save();
        
        }
        /* End of Fill in the blanks question format */
        /* Start of match the following question format */

        if($datas->questionformat_id==3)
        {
            $letters = range('a', 'z');
            for($i=1;$i<=$question_format->no_of_options;$i++)
            {
                $leter =$letters[$i-1];
                $res_vari = "res_opt_".$leter;
                $opt_file_url = "opt_file_url_".$leter;
                $res_file_url = "res_opt_file_url".$leter;
                $exp_file_image_url = "matchexp_file_image_url".$leter;
                $exp_file_document_url = "matchexp_file_document_url".$leter;
                /* storing question option */
                $data = new TaskQuestionOptions;
                $data->questionslibraries_id  = $question_id;
                $data->option = str_replace('&nbsp;', ' ', strip_tags(html_entity_decode($datas->$leter,ENT_QUOTES | ENT_HTML5, 'UTF-8')));
                $data->option_type = $datas->option_type;
                $data->respective_option_type = $datas->right_option_type;
                $data->explanation_file_type = $datas->match_explanation_type;
                $data->match_options = 1;
                $data->respective_option = str_replace('&nbsp;', ' ', strip_tags(html_entity_decode($datas->$res_vari,ENT_QUOTES | ENT_HTML5, 'UTF-8')));
                $data->respective_option_file = (Session::get('product_login_user')==22 && $datas->$res_file_url!='') ? copyFileToS3($datas->$res_file_url,'Content/Main/Task_Resources/'.$node_name.'/') : localtos3($datas->$res_file_url,'Content/Main/Task_Resources/'.$node_name.'/');
                if($datas->match_explanation_type==11)
                    $data->explanation_file_url = (Session::get('product_login_user')==22 && $datas->$exp_file_image_url!='') ? copyFileToS3($datas->$exp_file_image_url,'Content/Main/Task_Resources/'.$node_name.'/') : localtos3($datas->$exp_file_image_url,'Content/Main/Task_Resources/'.$node_name.'/');
                elseif($datas->match_explanation_type==14)
                    $data->explanation_file_url = (Session::get('product_login_user')==22 && $datas->$exp_file_image_url!='') ? copyFileToS3($datas->$exp_file_image_url,'Content/Main/Task_Resources/'.$node_name.'/') : localtos3($datas->$exp_file_image_url,'Content/Main/Task_Resources/'.$node_name.'/');
                else
                    $data->explanation_file_url = NULL;

                $data->option_file = (Session::get('product_login_user')==22 && $datas->$opt_file_url!='') ? copyFileToS3($datas->$opt_file_url,'Content/Main/Task_Resources/'.$node_name.'/') : localtos3($datas->$opt_file_url,'Content/Main/Task_Resources/'.$node_name.'/');
                $data->save();
                
            }
        }
         /* End of match the following question format */

       
         /* Start of Arrange the following question format */

        if($datas->questionformat_id==4 || $datas->questionformat_id==13)
        {
           
            $letters = range('a', 'z');
            for($i=1;$i<=$question_format->no_of_options;$i++)
            {
                
                $leter =$letters[$i-1];
                $opt_file_url = "opt_file_url_".$leter;

                /* storing question option */

                if($datas->$leter!='' || $datas->$opt_file_url)
                {
                    $data = new TaskQuestionOptions;
                    $data->questionslibraries_id  = $question_id;
                    $data->option_type = $datas->option_type;
                    
                    if($datas->option_type==1)
                        $data->option = str_replace('&nbsp;', ' ', strip_tags(html_entity_decode($datas->$leter,ENT_QUOTES | ENT_HTML5, 'UTF-8')));
                    else
                        $data->option_file = (Session::get('product_login_user')==22 && $datas->$opt_file_url!='') ? copyFileToS3($datas->$opt_file_url,'Content/Main/Task_Resources/'.$node_name.'/') : localtos3($datas->$opt_file_url,'Content/Main/Task_Resources/'.$node_name.'/');
                    $data->save();
                }
            }

        
        }
        /* End of Arrange the following question format */

        /* Start of One word question format */
        if($datas->questionformat_id==5)
        {
                $data = new TaskQuestionOptions;
                $data->questionslibraries_id  = $question_id;
                $data->option = '';
                $data->option_file = '';
                $data->match_options = '';
                $data->respective_option = '';
                $data->respective_option_file = '';
                $data->respective_option_file = '';
                $data->save();
        }
        /* End of One word question format */

        /* Start of Error Analysis question format */
        if($datas->questionformat_id==6)
        {
            foreach($datas->step as $k => $val)
            {
                if(isset($datas->answer[$k]))
                {
                    $data = new TaskQuestionOptions;
                    $data->questionslibraries_id  = $question_id;
                    $data->option = $val;
                    $data->option_file = localtos3(@$datas->optimage_media_url[$k],'Content/Main/Task_Resources/'.$node_name.'/');
                    $data->correct_answer_type = null;
                    if($datas->answer[$k]==2)
                    $data->correct_answer_type = $datas->correct_answer_type[$k];
                    
                    $data->correct_answer_text = str_replace('&nbsp;', ' ', strip_tags(html_entity_decode($datas->correct_answer_text[$k],ENT_QUOTES | ENT_HTML5, 'UTF-8')));
                    $data->correct_answer_media_url = (Session::get('product_login_user')==22 && $datas->correct_answer_media_url[$k]!='') ? copyFileToS3($datas->correct_answer_media_url[$k],'Content/Main/Task_Resources/'.$node_name.'/') : localtos3($datas->correct_answer_media_url[$k],'Content/Main/Task_Resources/'.$node_name.'/');
                    $data->match_options = '';
                    $data->is_correct_answer = $datas->answer[$k];
                    $data->save();
                }
            }
        }
         /* End of Error Analysis question format */

         /* Start of Error Analysis question format */
        if($datas->questionformat_id==7)
        {
            $letters = range('a', 'z');
            for($i=1;$i<=$question_format->no_of_options;$i++)
            {
                $leter =$letters[$i-1];
                $res_vari = "res_opt_".$leter;
                $opt_file_url = "image_media_url_".$leter;
                $option_type = "option_type_".$leter;
                $disoption_type = "distractor_option_type_".$leter;
                $answer = "movable_".$i;
                $distractor_text = "distractor_".$leter;
                $distractor_url = "distractor_image_media_url_".$leter;
               
                /* storing question option */
                $data = new QuestionOptions;
                $data->questionslibraries_id  = $question_id;
                $data->option = $datas->$leter;
                $data->option_type = $datas->$option_type;
                $data->option_file = (Session::get('product_login_user')==22 && $datas->$opt_file_url!='') ? copyFileToS3($datas->$opt_file_url,'Content/Main/Task_Resources/'.$node_name.'/') : localtos3($datas->$opt_file_url,'Content/Main/Task_Resources/'.$node_name.'/');
                $data->match_options = '';
                $data->movable_option = $datas->$answer;
                $data->distractor_type = $datas->$disoption_type;
                $data->distractor_text = $datas->$distractor_text;
                $data->distractor_url = (Session::get('product_login_user')==22 && $datas->$distractor_url!='') ? copyFileToS3($datas->$distractor_url,'Content/Main/Task_Resources/'.$node_name.'/') : localtos3($datas->$distractor_url,'Content/Main/Task_Resources/'.$node_name.'/');
                $data->save();               
            }
            
        }
         /* End of Error Analysis question format */

        if($datas->questionformat_id==10)
        {
            $letters = range('a', 'z');
            for($i=1;$i<=$question_format->no_of_options;$i++)
            {
                $leter =$letters[$i-1];
                $res_vari = "res_opt_".$leter;
                $opt_file_url = "opt_file_url_".$leter;
                $res_file_url = "res_opt_file_url".$leter;
                /* storing question option */
                $data = new TaskQuestionOptions;
                $data->questionslibraries_id  = $question_id;
                $data->option = $datas->$leter;
                $data->option_file = $datas->$opt_file_url;
                $data->match_options = 1;
                $data->respective_option = $datas->$res_vari;
                $data->respective_option_file = $datas->$res_file_url;
                $data->save();
                
            }
        }

        
    }

    public function taskOptionStoreOld($datas,$question_id)
    {
        $question_format = QuestionFormats::where('id',$datas->questionformat_id)->first();
        /* Mcq & match the following Format questions options storing */
        if($datas->questionformat_id==1)
        {
            $letters = range('a', 'z');
            for($i=1;$i<=$question_format->no_of_options;$i++)
            {
                $leter =$letters[$i-1];
                /* storing question option */
                $data = new TaskQuestionOptions;
                $data->questionslibraries_id  = $question_id;
                $data->option = $datas->$leter;

                if($question_format->evidence_require==1)
                {
                    $opt_explanation_id = "opt_explanation_id_".$leter;
                    if($datas->$opt_explanation_id == 1)
                    {
                        $evc_vari = "evc_".$leter;
                        $evc_dec_vari = "evc_dec_".$leter;
                        $data->evidence_type_id=$datas->$evc_vari;
                        $data->evidence_description=$datas->$evc_dec_vari;
                    }
                }
                if ($datas->correct_answer == $letters[$i-1]) {
                    $data->is_correct_answer = 1;
                } else {
                    $data->is_correct_answer = 0;
                }
                $data->save();   
            }
        }
        /* End of mcq question format */
        if($datas->questionformat_id==3)
        {
            $letters = range('a', 'z');
            for($i=1;$i<=$question_format->no_of_options;$i++)
            {
                $leter =$letters[$i-1];
                $res_vari = "res_opt_".$leter;
                $opt_file_url = "opt_file_url_".$leter;
                $res_file_url = "res_opt_file_url".$leter;
                /* storing question option */
                $data = new TaskQuestionOptions;
                $data->questionslibraries_id  = $question_id;
                $data->option = $datas->$leter;
                $data->option_file = $datas->$opt_file_url;
                $data->match_options = 1;
                $data->respective_option = $datas->$res_vari;
                $data->respective_option_file = $datas->$res_file_url;

                
                $data->save();
                
            }
        }

        if($datas->questionformat_id==2)
        {
            $splitdata = explode(" ",$datas->fillinblanks);
            $answer_statment = $datas->fillinblankanswer;
            $statement_question = "";
            foreach($splitdata as $key => $value){
                if(isset($answer_statment[$key])){
                    $statement_question .= '........ ';
                }else{
                    $statement_question .= $value." ";
                } 
            }
        

            $data = new TaskQuestionOptions;
            $data->questionslibraries_id  = $question_id;
            $data->statement = $datas->fillinblanks;
            $data->statement_question = $statement_question;
            $data->statement_answer = json_encode($answer_statment);
            $data->save();
        
        }

        if($datas->questionformat_id==4)
        {
           
            $letters = range('a', 'z');
            for($i=1;$i<=$question_format->no_of_options;$i++)
            {
                
                $leter =$letters[$i-1];
                $opt_file_url = "image_media_url_".$leter;
                $res_file_url = "answer_".$i;
                /* storing question option */
                $data = new TaskQuestionOptions;
                $data->questionslibraries_id  = $question_id;
                $data->option = $datas->$leter;
                $data->option_file = $datas->$opt_file_url;
                $data->correct_answer_required = 1;
                $data->is_correct_answer = $datas->$res_file_url;
                $data->save();
                    
            }
        }
        if($datas->questionformat_id==5)
        {
                $data = new TaskQuestionOptions;
                $data->questionslibraries_id  = $question_id;
                $data->option = '';
                $data->option_file = '';
                $data->match_options = '';
                $data->respective_option = '';
                $data->respective_option_file = '';
                $data->respective_option_file = '';
                $data->save();
        }
        if($datas->questionformat_id==10)
        {
            $letters = range('a', 'z');
            for($i=1;$i<=$question_format->no_of_options;$i++)
            {
                $leter =$letters[$i-1];
                $res_vari = "res_opt_".$leter;
                $opt_file_url = "opt_file_url_".$leter;
                $res_file_url = "res_opt_file_url".$leter;
                /* storing question option */
                $data = new TaskQuestionOptions;
                $data->questionslibraries_id  = $question_id;
                $data->option = $datas->$leter;
                $data->option_file = $datas->$opt_file_url;
                $data->match_options = 1;
                $data->respective_option = $datas->$res_vari;
                $data->respective_option_file = $datas->$res_file_url;
                $data->save();
            }
        }

        
    }

    
}
