public string SaveValueX(string pItemID, string pAsseID, string pScore, string pVal, string pType, string pRequired, string pCID, string pKeyRel, string pAsseRespID, string pKeyRelFB)
        {
            bool _temp_res = false;
            bool is_req    = false;

            bool.TryParse(pRequired, out is_req);

            if (string.IsNullOrEmpty(pVal) && is_req)
            {
                throw new Exception("Can not be empty!");
            }

            if (string.IsNullOrEmpty(pVal))
            {
                return("false");
            }

            int _cid = -1;
            int type_assessment_val;

            Constants.enAssessmentItemType _type = Constants.enAssessmentItemType.TEXT;
            if (Int32.TryParse(pType, out type_assessment_val))
            {
                _type = (Constants.enAssessmentItemType)type_assessment_val;
                if (_type == Constants.enAssessmentItemType.DATETIME)
                {
                    DateTime _dt;
                    if (DateTime.TryParse(pVal, out _dt) == false)
                    {
                        CommonUtilities.Log("Can not convert value to date! Value : " + pVal + Environment.NewLine + "Assessment_WS.asmx");
                        throw new Exception("Can not convert value to date!");
                    }
                }
                else if (_type == Constants.enAssessmentItemType.INTEGER)
                {
                    int _val;
                    if (int.TryParse(pVal, out _val) == false)
                    {
                        CommonUtilities.Log("Can not convert value to number! Value : " + pVal + Environment.NewLine + "Assessment_WS.asmx");
                        throw new Exception("Can not convert value to number!");
                    }
                }
                else if (_type == Constants.enAssessmentItemType.MULTIPLE_CHOICE_CHK || _type == Constants.enAssessmentItemType.MULTIPLE_CHOICE_RADIO || _type == Constants.enAssessmentItemType.GRID_RADIO || _type == Constants.enAssessmentItemType.GRID_CHK)
                {
                    if (int.TryParse(pCID, out _cid) == false)
                    {
                        CommonUtilities.Log("Can not convert value to number! Value : " + pVal + Environment.NewLine + "Assessment_WS.asmx");
                        throw new Exception("Can not convert value to number!");
                    }
                }
            }
            else
            {
                throw new Exception("An error occured!");
            }

            //if(Constants.enAssessmentItemType.TEXT )

            BSWSession cses = new BSWSession(HttpContext.Current.Session);

            if (cses == null && cses.UserID < 0)
            {
                CommonUtilities.Log("Session is empty! Assessment.asmx SaveValueX. ");
                throw new Exception("Please signin again!");
            }
            try
            {
                string _valTemp = string.Empty;
                BusinessRules.OP_Assessment       assessment_br = new BusinessRules.OP_Assessment(cses.SessionID, cses.UserID);
                DataAccess.AssessmentItemResponse objResp       = new DataAccess.AssessmentItemResponse();
                int _assessment_item_id = Convert.ToInt32(CommonUtilities.GlobalDecrypt(pItemID, cses.SessionKey));
                objResp.AssessmentItemID = _assessment_item_id;
                objResp.ScoreValue       = Convert.ToInt32(CommonUtilities.GlobalDecrypt(pScore, cses.SessionKey));
                objResp.Value            = pVal;
                if (_cid > 0)
                {
                    objResp.ChoiceID = _cid;
                    _valTemp         = _cid.ToString();
                }
                else
                {
                    _valTemp = pVal;
                }

                int  _resp_id = Convert.ToInt32(pAsseRespID);
                bool res      = assessment_br.Save_Assessment_Item_Response(objResp, Convert.ToInt32(pAsseID), ref _resp_id, cses.UserID, _type);
                if (!res)
                {
                    return(res.ToString());
                }
                if (!string.IsNullOrEmpty(pKeyRelFB))
                {
                    BusinessRules.OP_Feedback feedback_br = new BusinessRules.OP_Feedback(cses.SessionID, cses.UserID);
                    res = feedback_br.UpdateFeedbackRuleFormula(_assessment_item_id, Convert.ToInt32(pAsseID), _valTemp);
                    if (!res)
                    {
                        return(res.ToString());
                    }
                }

                string result_json = string.Empty;
                if (!string.IsNullOrEmpty(pKeyRel))
                {
                    List <AIDDisplayResult> listRes = new List <AIDDisplayResult>();
                    string[] _arr = pKeyRel.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                    foreach (string item in _arr)
                    {
                        int _aid = -1;
                        if (int.TryParse(item, out _aid))
                        {
                            assessment_br.UpdateAIDisplayFormula(_aid, _assessment_item_id, _valTemp);
                            assessment_br.ExecuteFormula(_aid, _valTemp, ref _temp_res);
                            AIDDisplayResult obj = new AIDDisplayResult();
                            obj.AID    = _aid;
                            obj.Result = _temp_res;
                            obj.RespID = _resp_id;
                            listRes.Add(obj);
                            JavaScriptSerializer serializer = new JavaScriptSerializer();
                            result_json = serializer.Serialize(listRes);
                        }

                        //ExecuteFormula
                    }
                }
                else
                {
                    return(res.ToString() + "#" + _resp_id.ToString());
                }

                return(result_json);
            }
            catch (Exception ex)
            {
                CommonUtilities.Log(ex);
                throw new Exception("An error occured during save process!");
            }
        }