Ejemplo n.º 1
0
    //public bool IsDup { get; set; }



    public Calculation_T4(int intResultSectionID, int TransactionID)
    {
        this.ResultSectionID = intResultSectionID;
        this.TransactionID   = TransactionID;



        Model_ReportSectionItem rss = new Model_ReportSectionItem();

        this.ReportSectionItem = rss.GetListItemBySectionID(this.ResultSectionID);

        this.R_UserAss_C = GetUserAss('c').OrderBy(o => o.Priority).ToList();

        Model_ReportItemResult ret = new Model_ReportItemResult();

        this.ReportResultT3 = ret.GetItemReportByTransactionID(this.TransactionID, 3);

        Model_Rule2 ideal = new Model_Rule2();

        this.IdealScore = ideal.GetAll();

        Model_Rule1 r1 = new Model_Rule1();

        this.RuleScore1 = r1.GetAll();

        Model_Rule4 r4 = new Model_Rule4();

        this.RuleScore4 = r4.GetAll();
    }
    public bool RecordResult(List <Model_ReportItemResult> result)
    {
        bool ret = false;

        if (result.Count > 0)
        {
            Model_ReportItemResult me = new Model_ReportItemResult();
            ret = me.InsertReportItemResultBulk(result);
        }

        return(ret);
    }
    //public bool IsDup { get; set; }



    public Calculation_T6(int intResultSectionID, int TransactionID)
    {
        this.ResultSectionID = intResultSectionID;
        this.TransactionID   = TransactionID;



        Model_ReportSectionItem rss = new Model_ReportSectionItem();

        this.ReportSectionItem = rss.GetListItemBySectionID(this.ResultSectionID);



        Model_ReportItemResult ret = new Model_ReportItemResult();

        this.ReportResultT4 = ret.GetItemReportByTransactionID(this.TransactionID, 4);
        this.ReportResultT2 = ret.GetItemReportByTransactionID(this.TransactionID, 2);

        Model_Jobfunction cj = new Model_Jobfunction();

        this.JobFunctionList = cj.GetAll();

        Model_JobFunctionListMain cjm = new Model_JobFunctionListMain();

        this.JobFunctionListMain = cjm.GetAllActive();

        Model_JobFunctionListMap cjmap = new Model_JobFunctionListMap();

        this.JobFunctionListMap = cjmap.GetAllList();

        Model_JFR1 r1 = new Model_JFR1();

        this.Rule1 = r1.GetAll();
        Model_JFR2 r2 = new Model_JFR2();

        this.Rule2 = r2.GetAll();
        Model_JFR3 r3 = new Model_JFR3();

        this.Rule3 = r3.GetAll();
        Model_JFR4 r4 = new Model_JFR4();

        this.Rule4 = r4.GetAll();
    }
    //Get Subsection F and H



    public List <Model_ReportItemResult> Code_SumValueBySubSection()
    {
        //Cdoe F = Section 7;
        List <Model_ReportItemResult> rlist = new List <Model_ReportItemResult>();


        var T2Ranking = this.ReportResultT2.Select(s => new {
            ResultID     = s.ResultID,
            ResultItemID = s.ResultItemID,
            Ranking      = this.ReportResultT2.Count(x => (decimal)x.Score_new > (decimal)s.Score_new) + 1,
            Name         = s.ResultItemTitle,
            Score        = s.Score_new
        });

        foreach (Model_ReportSectionItem item in this.ReportSectionItem)
        {
            string map = item.SUCID;
            //string[] arrGroup = map.Split('#');
            string[] arrmap      = map.Split(',');
            decimal  score       = 0;
            decimal  score_y     = 0;
            decimal  score_c     = 0;
            string   group       = string.Empty;
            byte     Side_y      = 0;
            byte     Side_c      = 0;
            byte     frequency_c = 0;
            byte     frequency_y = 0;

            decimal SumGeniuses    = 0.0m;
            decimal SumTrait       = 0.0m;
            decimal ReqSupGeniuses = 0.0m;
            decimal ReqSupBottom   = 0.0m;

            int CountSup    = this.ReportResultT4.Where(o => o.GT == 1).Count();
            int CountBottom = this.ReportResultT4.Where(o => o.GT == 5).Count();

            if (arrmap.Length > 0)
            {
                foreach (string m in arrmap)
                {
                    List <Model_Jobfunction> cj = this.JobFunctionList.Where(o => o.JFID == int.Parse(m)).ToList();


                    if (cj.Count > 0)
                    {
                        Model_Jobfunction cJob = cj.FirstOrDefault();
                        foreach (Model_JobFunctionListMain main in this.JobFunctionListMain.Where(o => o.Category == 1))
                        {
                            Model_ReportItemResult ass = this.ReportResultT4.Where(o => o.ResultItemID == int.Parse(main.Mapping)).FirstOrDefault();

                            Model_JobFunctionListMap mapscore = this.JobFunctionListMap.Where(o => o.JFID == cJob.JFID && o.JFMID == main.JFMID).FirstOrDefault();

                            if (mapscore != null && ass != null)
                            {
                                Model_JFR1 rule1ret = this.Rule1.Where(o => o.Score == (int)ass.GT).FirstOrDefault();
                                SumGeniuses += (decimal)rule1ret.GetType().GetProperty("CJRRuleScore" + mapscore.Score).GetValue(rule1ret);


                                foreach (Model_JFR3 r3 in this.Rule3.Where(o => o.Cat == 1))
                                {
                                    if (CalKey(r3.Condition1, (int)ass.GT) && CalKey(r3.Condition2, (int)mapscore.Score))
                                    {
                                        ReqSupGeniuses += r3.Score;
                                        //if (r3.Score == 1)
                                        //    CountSup = CountSup + 1;
                                        break;
                                    }
                                }
                                foreach (Model_JFR3 r3 in this.Rule3.Where(o => o.Cat == 2))
                                {
                                    if (CalKey(r3.Condition1, (int)ass.GT) && CalKey(r3.Condition2, (int)mapscore.Score))
                                    {
                                        ReqSupBottom += r3.Score;
                                        //if (r3.Score == 5)
                                        //    CountBottom = CountBottom + 1;
                                        break;
                                    }
                                }
                                //Model_JFR3 rule2ret = this.Rule3.Where(o => ).FirstOrDefault();
                                //ReqSupGeniuses += (decimal)rule2ret.GetType().GetProperty("CJRRuleScore" + mapscore.Score).GetValue(rule1ret);

                                //Model_JFR3 rule3ret = this.Rule3.Where(o => o.Score == (int)ass.GT && o.Cat == 2).FirstOrDefault();
                            }
                        }

                        foreach (Model_JobFunctionListMain main in this.JobFunctionListMain.Where(o => o.Category == 2))
                        {
                            var ass = T2Ranking.Where(o => o.ResultItemID == int.Parse(main.Mapping)).FirstOrDefault();

                            Model_JobFunctionListMap mapscore = this.JobFunctionListMap.Where(o => o.JFID == cJob.JFID && o.JFMID == main.JFMID).FirstOrDefault();

                            if (mapscore != null && ass != null)
                            {
                                Model_JFR2 rule1ret = this.Rule2.Where(o => o.Score == (int)ass.Ranking).FirstOrDefault();
                                SumTrait += (decimal)rule1ret.GetType().GetProperty("CJRRuleScore" + mapscore.Score).GetValue(rule1ret);
                            }
                        }
                    }
                }



                rlist.Add(new Model_ReportItemResult
                {
                    ResultSectionID = this.ResultSectionID,
                    ResultItemID    = item.ResultItemID,
                    ResultItemTitle = item.Title,
                    TransactionID   = this.TransactionID,
                    Score           = score,
                    Score_new       = score,
                    Score_y         = score_y,
                    Score_c         = score_c,
                    T5Group         = group,
                    Side_c          = Side_c,
                    Side_y          = Side_y,
                    Frequency_c     = frequency_c,
                    Frequency_y     = frequency_y,
                    SumGeniuses     = SumGeniuses,
                    SumTrait        = SumTrait,
                    ReqSupBottom    = ReqSupBottom,
                    ReqSupGeniuses  = ReqSupGeniuses,
                    CountBottom     = CountBottom,
                    CountSup        = CountSup
                });
            }
        }



        List <Model_ReportItemResult> ListReview = ReviewResult(rlist);



        return(ListReview.OrderByDescending(o => o.Score_new).ToList());
    }
Ejemplo n.º 5
0
    protected void Page_Load(object sender, EventArgs e)
    {
        this.Page.Title = "KeenProfile Assessment Extra";
        if (!this.Page.IsPostBack)
        {
            if (!string.IsNullOrEmpty(Request.QueryString["success"]))
            {
                main_thanks.Visible = true;
                main_form.Visible   = false;

                Model_AssesIntro intro = new Model_AssesIntro();
                intro            = intro.GetIntro();
                ThanksTitle.Text = intro.ThanksTitle;
                ThanksDes.Text   = convertcontent(intro.ThanksDes);
            }
            else
            {
                Model_Users u = this.UserActive;
                if (u != null)
                {
                    heUserID.Value = u.UserID.ToString();



                    if (!string.IsNullOrEmpty(Request.QueryString["ts"]))
                    {
                        int intTs = int.Parse(Request.QueryString["ts"]);

                        hdTsID.Value = intTs.ToString();

                        Model_ReportItemResult cr = new Model_ReportItemResult();
                        Model_UsersAssessment  us = new Model_UsersAssessment();

                        List <Model_UsersAssessment> uss = us.GetUserAssessmentByTsID(intTs);

                        List <Model_ReportItemResult> crl = cr.GetItemReportByTransactionID(intTs);


                        List <Model_ReportItemResult> dup = crl.Where(o => o.IsDup > 0).ToList();


                        Dictionary <decimal, int> GroupDup = dup.GroupBy(x => (decimal)x.Score_new)
                                                             .Where(g => g.Count() > 1)
                                                             .ToDictionary(x => x.Key, y => y.Count());



                        int numStep = GroupDup.Count();

                        StringBuilder ret = new StringBuilder();

                        int count = 1;
                        foreach (KeyValuePair <decimal, int> q in GroupDup)
                        {
                            List <Model_ReportItemResult> dupfocus = dup.Where(d => d.Score_new == q.Key).OrderByDescending(r => r.Score_new).ToList();

                            ret.Append("<h1 class=\"step_count\"></h1>\r\n");
                            ret.Append("<div class=\"step-content\" data-valid=\"check_choice\" data-count=\"" + (dupfocus.Count < 3 ? 3 : dupfocus.Count) + "\">\r\n");
                            ret.Append("<input type=\"hidden\" name=\"ass_fill_\"  value=\"" + count + "\" />\r\n");

                            ret.Append("<div class=\"text-center m-t-md\">\r\n");
                            ret.Append("<h2>โปรดให้ระดับคะแนนความสำคัญของข้อความต่อไปนี้ว่าข้อความใดตรงกับตัวตนของคุณมากที่สุด โดยในแต่ละข้อโปรดเลือกระดับคะแนนของแต่ละข้อความไม่ให้ซ้ำกัน</h2>\r\n");


                            ret.Append("<div class=\"question-type q-type-rank-scale-choice\">\r\n");
                            ret.Append("<div class=\"col-md-12 tbl-rank-scale\" >\r\n");

                            ret.Append("<table>\r\n");
                            ret.Append("<tr>\r\n");
                            ret.Append("<td class=\"question\"></td>\r\n");
                            //ret.Append("<input type=\"hidden\"   name=\"ass_fill_i_sc_" + ass.ASID + "\" value=\"0\" />");
                            for (int i = 1; i <= (dupfocus.Count < 3 ? 3 : dupfocus.Count); i++)
                            {
                                if (i == 1)
                                {
                                    ret.Append("<td class=\"choice\">" + i + "<br /><span> เป็นตัวตนของฉัน \"น้อย\" ที่สุด</span></td>\r\n");
                                }
                                else if (i == (dupfocus.Count < 3 ? 3 : dupfocus.Count))
                                {
                                    ret.Append("<td class=\"choice\">" + i + "<br /> <span> เป็นตัวตนของฉัน \"มาก\" ที่สุด</span></td>\r\n");
                                }
                                else
                                {
                                    ret.Append("<td class=\"choice\">" + i + "</td>\r\n");
                                }
                            }

                            ret.Append(" </tr>\r\n");



                            if (dupfocus.Count > 0)
                            {
                                foreach (Model_ReportItemResult ch in dupfocus)
                                {
                                    Model_UsersAssessment assuser = uss.FirstOrDefault(o => o.TASID == ch.TASID);
                                    if (assuser != null)
                                    {
                                        ret.Append("<tr>\r\n");
                                        ret.Append("<input type=\"hidden\" name=\"ass_fill_ch_\"  value=\"" + ch.TASID + "\" />\r\n");
                                        ret.Append("<td class=\"question\">" + assuser.Questions + "</td>\r\n");

                                        //for (int i = 1; i <= (dupfocus.Count < 3? 3: dupfocus.Count); i++)
                                        for (int i = (dupfocus.Count < 3 ? 3 : dupfocus.Count); i >= 1; i--)
                                        {
                                            //ret.Append("<td class=\"choice\"><input type=\"radio\"   name=\"ass_fill_ch_sc_" + ch.ResultID + "\" value=\"" + i + "\" /></td>\r\n");
                                            ret.Append("<td class=\"choice\"><input type=\"radio\"   name=\"ass_fill_ch_sc_" + ch.TASID + "\" value=\"" + i + "\" /></td>\r\n");
                                        }

                                        ret.Append("</tr>\r\n");
                                    }
                                }


                                if (dupfocus.Count < 3)
                                {
                                    List <Model_UsersAssessment> randomlist = new List <Model_UsersAssessment>();

                                    foreach (Model_UsersAssessment i in uss)
                                    {
                                        foreach (Model_ReportItemResult ch in dupfocus)
                                        {
                                            if (i.TASID != ch.TASID)
                                            {
                                                randomlist.Add(i);
                                            }
                                        }
                                    }

                                    Model_UsersAssessment rd = randomlist.Where(p => !dupfocus.Any(p2 => p2.TASID == p.TASID)).Skip(3).FirstOrDefault();

                                    ret.Append("<tr>\r\n");
                                    //ret.Append("<input type=\"hidden\" name=\"ass_fill_ch_\"  value=\"" + rd.ResultID + "\" />\r\n");
                                    ret.Append("<td class=\"question\">" + rd.Questions + "</td>\r\n");

                                    //for (int i = 1; i <= (dupfocus.Count < 3 ? 3 : dupfocus.Count); i++)
                                    for (int i = (dupfocus.Count < 3 ? 3 : dupfocus.Count); i >= 1; i--)
                                    {
                                        ret.Append("<td class=\"choice\"><input type=\"radio\"   name=\"ass_fill_ch_sc_" + rd.TASID + "\" value=\"" + i + "\" /></td>\r\n");
                                    }

                                    ret.Append("</tr>\r\n");
                                }
                            }



                            ret.Append("</table>\r\n");
                            ret.Append("</div>\r\n");
                            ret.Append("</div>\r\n");



                            ret.Append("</div>\r\n");
                            ret.Append("</div>\r\n");

                            count = count + 1;
                        }

                        Stepcontent.Text = ret.ToString();
                        numtopic.Text    = (count - 1).ToString();
                    }
                }
            }
        }
        else
        {
            //Button btn = (Button)sender;

            //Response.Write(chckCJF.SelectedValue);
        }
    }