Exemplo n.º 1
0
        /// <summary>
        /// Populate the answers for each of the statement columns.
        /// </summary>
        /// <param name="export"></param>
        private void ProcessStatementAnswers(int assessmentID, ref SingleRowExport export)
        {
            var q = from s in db.SETS
                    join rs in db.REQUIREMENT_SETS on s.Set_Name equals rs.Set_Name
                    join req in db.NEW_REQUIREMENT on rs.Requirement_Id equals req.Requirement_Id
                    join answ in db.ANSWER on req.Requirement_Id equals answ.Question_Or_Requirement_Id
                    where s.Set_Name == "ACET_V1" &&
                    answ.Assessment_Id == assessmentID &&
                    answ.Is_Requirement == true
                    select new { req.Requirement_Title, answ.Answer_Text };

            var myAnswers = q.ToList();

            Dictionary <string, string> answerTranslation = new Dictionary <string, string>
            {
                ["Y"]  = "Yes",
                ["N"]  = "No",
                ["A"]  = "Yes(C)",
                ["U"]  = "0",
                ["NA"] = "0",
                [""]   = "0"
            };

            foreach (var g in myAnswers)
            {
                export.d[g.Requirement_Title.Substring(5)] = answerTranslation[g.Answer_Text];
            }
        }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="export"></param>
        private void ProcessIRP(int assessmentID, ACETDashboard acetDashboard, ref SingleRowExport export)
        {
            // build a quick dictionary for textual risk level values
            Dictionary <int, string> riskLevelDescription = new Dictionary <int, string>
            {
                { 0, "0" },
                { 1, "1 - Least" },
                { 2, "2 - Minimal" },
                { 3, "3 - Moderate" },
                { 4, "4 - Significant" },
                { 5, "5 - Most" }
            };

            for (int i = 0; i < acetDashboard.IRPs.Count; i++)
            {
                export.d["IRPC" + (i + 1)] = riskLevelDescription[acetDashboard.IRPs[i].RiskLevel];
            }

            var irpAnswers = db.ASSESSMENT_IRP
                             .Include(x => x.IRP_)
                             .Where(x => x.Assessment_Id == assessmentID)
                             .OrderBy(i => i.IRP_.Item_Number)
                             .ToList();

            foreach (var irpAnswer in irpAnswers)
            {
                export.d["IRP" + irpAnswer.IRP_.Item_Number] = irpAnswer.Response.ToString();
            }
        }
Exemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="export"></param>
        private void ProcessHours(int assessmentID, ref SingleRowExport export)
        {
            const string d  = "Documentation";
            const string ip = "Interview Process";

            var fhours = db.FINANCIAL_HOURS.Where(x => x.Assessment_Id == assessmentID).ToList();

            export.d["Doc Hrs"] = fhours.Where(x => x.ReviewType == d).Sum(y => y.Hours).ToString();
            export.d["Int Hrs"] = fhours.Where(x => x.ReviewType == ip).Sum(y => y.Hours).ToString();

            export.d["Pre Doc"]  = GetHours(fhours, "Pre-exam prep", d);
            export.d["IRP Doc"]  = GetHours(fhours, "IRP", d);
            export.d["D1 Doc"]   = GetHours(fhours, "Domain 1", d);
            export.d["D2 Doc"]   = GetHours(fhours, "Domain 2", d);
            export.d["D3 Doc"]   = GetHours(fhours, "Domain 3", d);
            export.d["D4 Doc"]   = GetHours(fhours, "Domain 4", d);
            export.d["D5 Doc"]   = GetHours(fhours, "Domain 5", d);
            export.d["Oth1 Doc"] = GetHours(fhours, "Other (specify)", d);
            export.d["Oth2 Doc"] = GetHours(fhours, "Additional Other (specify)", d);

            export.d["Pre Int"]  = GetHours(fhours, "Pre-exam prep", ip);
            export.d["IRP Int"]  = GetHours(fhours, "IRP", ip);
            export.d["D1 Int"]   = GetHours(fhours, "Domain 1", ip);
            export.d["D2 Int"]   = GetHours(fhours, "Domain 2", ip);
            export.d["D3 Int"]   = GetHours(fhours, "Domain 3", ip);
            export.d["D4 Int"]   = GetHours(fhours, "Domain 4", ip);
            export.d["D5 Int"]   = GetHours(fhours, "Domain 5", ip);
            export.d["Exit Int"] = GetHours(fhours, "Discussing end results with CU", ip);
            export.d["Oth1 Int"] = GetHours(fhours, "Other (specify)", ip);
            export.d["Oth2 Int"] = GetHours(fhours, "Additional Other (specify)", ip);


            // Statements marked as 'Reviewed'
            Dictionary <string, int> countStatementsReviewed = new Dictionary <string, int>();
            var stmtCounts = db.usp_StatementsReviewed(assessmentID).ToList <usp_StatementsReviewed_Result>();

            foreach (var row in stmtCounts)
            {
                countStatementsReviewed[row.Component] = row.ReviewedCount ?? 0;
            }

            export.d["D1 Rev"]  = countStatementsReviewed["Domain 1"].ToString();
            export.d["D2 Rev"]  = countStatementsReviewed["Domain 2"].ToString();
            export.d["D3 Rev"]  = countStatementsReviewed["Domain 3"].ToString();
            export.d["D4 Rev"]  = countStatementsReviewed["Domain 4"].ToString();
            export.d["D5 Rev"]  = countStatementsReviewed["Domain 5"].ToString();
            export.d["D1 Rvw"]  = countStatementsReviewed["Domain 1"].ToString();
            export.d["D2 Rvw"]  = countStatementsReviewed["Domain 2"].ToString();
            export.d["D3 Rvw"]  = countStatementsReviewed["Domain 3"].ToString();
            export.d["D4 Rvw"]  = countStatementsReviewed["Domain 4"].ToString();
            export.d["D5 Rvw"]  = countStatementsReviewed["Domain 5"].ToString();
            export.d["Tot Rvw"] = (countStatementsReviewed["Domain 1"]
                                   + countStatementsReviewed["Domain 2"]
                                   + countStatementsReviewed["Domain 3"]
                                   + countStatementsReviewed["Domain 4"]
                                   + countStatementsReviewed["Domain 5"]).ToString();
        }
Exemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="stream"></param>
        public DataTable BuildAssessment(int assessmentID)
        {
            var assess = db.ASSESSMENTS
                         .Include(x => x.INFORMATION)
                         .Where(x => x.Assessment_Id == assessmentID)
                         .FirstOrDefault();

            if (assess == null)
            {
                return(null);
            }

            // A few helper classes gather data
            ACETDashboardManager dm = new ACETDashboardManager();
            var acetDashboard       = dm.LoadDashboard(assessmentID);

            MaturityManager manager = new MaturityManager();

            var maturityDomains = manager.GetMaturityAnswers(assessmentID);


            // Build the row for the assessment
            var export = new SingleRowExport();

            export.d["Version"] = db.CSET_VERSION.FirstOrDefault().Cset_Version1;

            export.d["Assessment Name"] = assess.INFORMATION.Assessment_Name;
            export.d["CU Name"]         = acetDashboard.CreditUnionName;
            export.d["CU #"]            = acetDashboard.Charter;
            export.d["Assets"]          = acetDashboard.Assets;
            export.d["Hours"]           = acetDashboard.Hours.ToString();

            var fav  = db.FINANCIAL_ASSESSMENT_VALUES.Where(x => x.Assessment_Id == assessmentID).ToList();
            var fav1 = fav.Where(n => n.AttributeName == "Credit Union Completed ACET for Exam").FirstOrDefault();
            var fav2 = fav.Where(n => n.AttributeName == "Credit Union Completed CAT or ACET Prior to Exam (Self-Initiated)").FirstOrDefault();

            export.d["CU ACET for EX"] = (fav1 != null) ? fav1.AttributeValue : "";
            export.d["CU Self ACET"]   = (fav2 != null) ? fav2.AttributeValue : "";

            ProcessHours(assessmentID, ref export);

            ProcessIRP(assessmentID, acetDashboard, ref export);

            ProcessMaturity(acetDashboard, maturityDomains, ref export);

            ProcessStatementAnswers(assessmentID, ref export);

            return(export.ToDataTable());
        }
Exemplo n.º 5
0
        /// <summary>
        /// Get all of the maturity levels.
        /// </summary>
        /// <param name="export"></param>
        private void ProcessMaturity(ACETDashboard acetDashboard, List <MaturityDomain> maturityDomains, ref SingleRowExport export)
        {
            // gather Domain Maturity 1 - 5
            for (int i = 0; i < acetDashboard.Domains.Count; i++)
            {
                export.d["Dom Mat " + (i + 1)] = acetDashboard.Domains[i].Maturity;
            }

            // gather the maturity levels for all factors and components
            foreach (var m in maturityDomains)
            {
                foreach (var a in m.Assessments)
                {
                    string factorName = a.AssessmentFactor;

                    // A few factor headings have a unique suffix to avoid name conflicts in the dictionary
                    if (!export.d.ContainsKey(factorName))
                    {
                        factorName = factorName + "[FACTOR]";
                    }
                    export.d[factorName] = a.AssessmentFactorMaturity;

                    foreach (var x in a.Components)
                    {
                        string compName = x.ComponentName.Substring(x.ComponentName.IndexOf(':') + 1).Trim();

                        // A few component headings have a unique suffix to avoid name conflicts in the dictionary
                        if (!export.d.ContainsKey(compName))
                        {
                            compName = compName + "[COMPONENT]";
                        }

                        export.d[compName] = x.AssessedMaturityLevel;
                    }
                }
            }
        }