/**
  * Function to save user information.
  *
  * @return Response
  */
 public function saveuserInfo()
 {
     $result = Request::all();
     $rules = Validator::make(Request::all(), ['fname' => 'required', 'lname' => 'required', 'email' => 'required', 'linkedinid' => 'required', 'token' => 'required', 'linkedinurl' => 'required']);
     if ($rules->fails()) {
         $this->status = 'failure';
         $this->message = 'There is something missing So user cant be registered';
         return Response::json(array('status' => $this->status, 'message' => $this->message));
     } else {
         $linkedinid = Request::get('linkedinid');
         $email = Request::get('email');
         $user = User::where('linkedinid', '=', $linkedinid)->orWhere('email', '=', $email)->first();
         $randNumber = ApiController::getGUID();
         if (!empty($user)) {
             //This code will execute when user will already register.
             $user_id = $user->id;
             $user_data = $user->toArray();
             $user_id = $user_data['id'];
             $user_info = User::find($user_id);
             $user = User::find($user_id);
             $user->token = $result['token'];
             $user->site_token = $randNumber;
             $user->save();
             $CurrentDate = KarmaHelper::currentDate();
             $profileupdatedate = $user_info->profileupdatedate;
             $diffDate = KarmaHelper::dateDiff($CurrentDate, $profileupdatedate);
             $diffDate = $diffDate->days * 24 + $diffDate->h;
             $refreshTime = Adminoption::where('option_name', '=', 'connection refresh time')->first();
             if (!empty($refreshTime)) {
                 $refreshTime = $refreshTime->toArray();
                 $refreshTime = $refreshTime['option_value'];
             } else {
                 $refreshTime = '360';
             }
             if ($diffDate >= $refreshTime) {
                 $date = Carbon::now()->addMinutes(5);
                 Queue::push('UpdateUser', array('id' => $user_id, 'result' => $result));
             }
             $this->status = 'Success';
             $this->message = 'You are already registered';
             $userStatus = User::where('linkedinid', '=', $linkedinid)->orWhere('email', '=', $email)->select('userstatus')->first();
             $userStatus = $userStatus->userstatus;
         } else {
             //This code will execute when new user will register.
             $user = new User();
             $user->fname = $result['fname'];
             $user->lname = @$result['lname'];
             $user->email = $result['email'];
             $user->piclink = @$result['piclink'];
             $user->linkedinid = $result['linkedinid'];
             $user->summary = @$result['summary'];
             $user->location = @$result['location'];
             $user->industry = @$result['industry'];
             $user->headline = @$result['headline'];
             $user->linkedinurl = @$result['linkedinurl'];
             $user->token = @$result['token'];
             $user->termsofuse = 1;
             $user->userstatus = 'ready for approval';
             $user->noofmeetingspm = 2;
             $user->profileupdatedate = date('Y-m-d H:i:s');
             $user->site_token = $randNumber;
             $user->save();
             $user = $user;
             $user_id = $user->id;
             Queue::push('MessageSender@newUserEmail', array('user_id' => $user_id));
             //funtion to save data on connections table.
             $InsConnection = KarmaHelper::insertUserConnection($user);
             $this->status = 'Success';
             $this->message = 'User successfully registered';
             $userStatus = User::where('linkedinid', '=', $result['linkedinid'])->orWhere('email', '=', $result['email'])->select('userstatus')->first();
             $userStatus = $userStatus->userstatus;
         }
         return Response::json(array('status' => $this->status, 'message' => $this->message, 'UserId' => $user_id, 'UserAccesstoken' => $user->site_token, 'UserStatus' => $userStatus));
     }
 }