Esempio n. 1
0
        public ImpRuleQuestion getRuleQuestionByID(int ruleQeustionID)
        {
            ImpRuleQuestion ques1   = new ImpRuleQuestion();
            DBUtils         dbUtils = new DBUtils();
            String          myQuery = "SELECT *"
                                      + " FROM I_Rule_Question q"
                                      + " JOIN I_CLO C ON Q.I_CLO_clo_id = C.clo_id"
                                      + " JOIN App_Course AC ON AC.course_id = C.App_Course_course_id"
                                      + " JOIN App_Program AP ON AP.program_id = AC.App_Program_program_id"
                                      + " JOIN App_CODE CD on CD.CODE_ID = Q.rule_question_type_id"
                                      + " WHERE rule_question_id = " + ruleQeustionID
                                      + " order by 1 desc";
            SqlDataReader attributeListReader = dbUtils.readOperation(myQuery);

            while (attributeListReader.Read())
            {
                ques1.ruleQuesId           = (int)attributeListReader["rule_question_id"];
                ques1.ruleQuestionStatemet = attributeListReader["rule_ques_statement"].ToString();
                ques1.dBQueryStatement     = attributeListReader["DATABASE_QUERY_STATEMENT"].ToString();
                ques1.ruleQuesTypeID       = (int)attributeListReader["rule_question_type_id"];
                ques1.ruleQuesType         = attributeListReader["CODE_VALUE"].ToString();
                AppCLO myClo = new AppCLO();
                myClo.cloId        = (int)attributeListReader["clo_id"];
                myClo.cloStatement = attributeListReader["clo_statement"].ToString();
                myClo.courseId     = (int)attributeListReader["course_id"];
                myClo.courseName   = attributeListReader["course_name"].ToString();
                myClo.programId    = (int)attributeListReader["program_id"];
                myClo.programName  = attributeListReader["program_name"].ToString();
                ques1.cloData      = myClo;
            }
            dbUtils.closeDBConnection();
            return(ques1);
        }
        public ImpRuleQuestion searchQuestionDetails(int quesID, List <ImpRuleQuestion> quesList)
        {
            ImpRuleQuestion quesFound = null;

            foreach (ImpRuleQuestion ques in quesList)
            {
                if (ques.ruleQuesId == quesID)
                {
                    quesFound = ques;
                }
            }
            return(quesFound);
        }
        protected void Submit_Button_Click1(object sender, EventArgs e)
        {
            int    selectedItemCount = 0;
            String selectedItems     = "";
            String questionJSON      = Request.QueryString["dbQueryValues"];
            List <ImpRuleQuestion> listOfQuestionValues = new List <ImpRuleQuestion>();

            if (questionJSON != "]")
            {
                listOfQuestionValues = JsonConvert.DeserializeObject <List <ImpRuleQuestion> >(questionJSON);
            }
            String dbQueryStr = "";

            foreach (DataListItem item in DataList1.Items)
            {
                if (((RadioButtonList)item.FindControl("radlstPubs")).SelectedItem != null)
                {
                    HiddenField HiddenFieldQuesType = (HiddenField)item.FindControl("hiddenQuesType");
                    if (HiddenFieldQuesType.Value == "1101")
                    {
                        selectedItemCount++;
                        selectedItems += ((RadioButtonList)item.FindControl("radlstPubs")).SelectedItem.Value + ",";
                    }
                    else
                    {
                        String          selectedValue              = ((RadioButtonList)item.FindControl("radlstPubs")).SelectedItem.Value;
                        HiddenField     HiddenFieldQuesID          = (HiddenField)item.FindControl("hiddenQuesID");
                        HiddenField     HiddenFieldCalculatedValue = (HiddenField)item.FindControl("HiddenCalculatedValue");
                        ImpRuleQuestion quesRet = searchQuestionDetails(Int32.Parse(HiddenFieldQuesID.Value), listOfQuestionValues);
                        if (dbQueryStr != "")
                        {
                            dbQueryStr += " OR";
                        }
                        dbQueryStr += " (IR2.I_RULE_QUESTION_ID = " + HiddenFieldQuesID.Value;
                        if (selectedValue.Equals("1601"))
                        {
                            dbQueryStr += " AND IR2.COMPARISON_VALUE = " + HiddenFieldCalculatedValue.Value + " )";
                        }
                        else if (selectedValue.Equals("1602"))
                        {
                            dbQueryStr += " AND IR2.COMPARISON_VALUE > " + HiddenFieldCalculatedValue.Value + " )";
                        }
                        else if (selectedValue.Equals("1603"))
                        {
                            dbQueryStr += " AND IR2.COMPARISON_VALUE < " + HiddenFieldCalculatedValue.Value + " )";
                        }
                        else if (selectedValue.Equals("1604"))
                        {
                            dbQueryStr += " AND IR2.COMPARISON_VALUE >= " + HiddenFieldCalculatedValue.Value + " )";
                        }
                        else if (selectedValue.Equals("1605"))
                        {
                            dbQueryStr += " AND IR2.COMPARISON_VALUE <= " + HiddenFieldCalculatedValue.Value + " )";
                        }
                    }
                }
            }
            if (selectedItems.Length > 0)
            {
                selectedItems = selectedItems.Substring(0, selectedItems.Length - 1);
            }
            //LogUtils.myLog.Info("Selected Item of Radio Button is: " + selectedItems + " and length is : " + selectedItemCount);
            List <int> ruleIdsList = new List <int>();

            if (selectedItemCount > 0 || !dbQueryStr.Equals(""))
            {
                expertSugLbl.Visible = true;
                String myQuery = "SELECT * FROM I_Rule R"
                                 + " WHERE R.rule_id IN ("
                                 + " SELECT I_Rule_rule_id"
                                 + " FROM I_Rule_Case IR2"
                                 + " WHERE 1=1 AND (";
                if (selectedItemCount > 0)
                {
                    myQuery += " I_Rule_Ques_Answer_answer_id IN (" + selectedItems + ")";
                    if (dbQueryStr != "")
                    {
                        myQuery += " OR ";
                    }
                }

                myQuery += dbQueryStr
                           + ") GROUP BY I_Rule_rule_id"
                           + " HAVING COUNT(IR2.I_Rule_rule_id) ="
                           + " (SELECT COUNT(*) FROM I_RULE_CASE IR1"
                           + " WHERE IR1.I_Rule_rule_id = IR2.I_Rule_rule_id)"
                           + " )";

                DBUtils       dbUtilObj         = new DBUtils();
                SqlDataReader readerQueriesList = dbUtilObj.readOperation(myQuery);

                List <ImpRule> impRuleListObj = new List <ImpRule>();
                if (readerQueriesList != null && readerQueriesList.HasRows)
                {
                    while (readerQueriesList.Read())
                    {
                        ImpRule impRuleObj = new ImpRule();
                        impRuleObj.ruleId       = (int)readerQueriesList["rule_id"];
                        impRuleObj.ruleStatemet = readerQueriesList["rule_statement"].ToString();
                        impRuleListObj.Add(impRuleObj);
                    }
                    readerQueriesList.Close();
                }
                else
                {
                    ImpRule impRuleObj = new ImpRule();
                    impRuleObj.ruleId       = 1;
                    impRuleObj.ruleStatemet = "No suggestion is available";
                    impRuleListObj.Add(impRuleObj);
                }

                ruleListTag.DataSource = impRuleListObj;
                ruleListTag.DataBind();
            }
        }