Beispiel #1
0
        public void PersistSelectedIRP(int assessmentId, IRPModel irp)
        {
            if (assessmentId == 0)
            {
                return;
            }
            if (irp == null)
            {
                return;
            }

            using (var db = new CSET_Context())
            {
                ASSESSMENT_IRP answer = db.ASSESSMENT_IRP.FirstOrDefault(i => i.IRP_Id == irp.IRP_Id &&
                                                                         i.Assessment_.Assessment_Id == assessmentId);
                if (answer != null)
                {
                    answer.Response = irp.Response;
                    answer.Comment  = irp.Comment;
                }
                else
                {
                    answer = new ASSESSMENT_IRP()
                    {
                        Response = irp.Response,
                        Comment  = irp.Comment,
                    };
                    answer.Assessment_ = db.ASSESSMENTS.FirstOrDefault(a => a.Assessment_Id == assessmentId);
                    db.ASSESSMENT_IRP.Add(answer);
                }
                db.SaveChanges();
            }
        }
Beispiel #2
0
        public IRPResponse GetIRPList(int assessmentId)
        {
            IRPResponse response = new IRPResponse();

            using (var db = new CSET_Context())
            {
                foreach (IRP_HEADER header in db.IRP_HEADER)
                {
                    IRPHeader tempHeader = new IRPHeader()
                    {
                        header = header.Header
                    };

                    foreach (IRP irp in db.IRP.Where(x => x.Header_Id == header.IRP_Header_Id).ToList())
                    {
                        IRPModel tempIRP = new IRPModel()
                        {
                            IRP_Id              = irp.IRP_ID,
                            Item_Number         = irp.Item_Number ?? 0,
                            Description         = irp.Description,
                            DescriptionComment  = irp.DescriptionComment,
                            Risk_1_Description  = irp.Risk_1_Description,
                            Risk_2_Description  = irp.Risk_2_Description,
                            Risk_3_Description  = irp.Risk_3_Description,
                            Risk_4_Description  = irp.Risk_4_Description,
                            Risk_5_Description  = irp.Risk_5_Description,
                            Validation_Approach = irp.Validation_Approach
                        };

                        // Get the existing answer or create a blank
                        ASSESSMENT_IRP answer = db.ASSESSMENT_IRP.FirstOrDefault(ans =>
                                                                                 ans.IRP_Id == irp.IRP_ID &&
                                                                                 ans.Assessment_.Assessment_Id == assessmentId);
                        if (answer == null)
                        {
                            answer = new ASSESSMENT_IRP()
                            {
                                Assessment_Id = assessmentId,
                                IRP_Id        = irp.IRP_ID,
                                Response      = 0,
                                Comment       = ""
                            };

                            db.ASSESSMENT_IRP.Add(answer);
                        }
                        tempIRP.Response = answer.Response.Value;
                        tempIRP.Comment  = answer.Comment;
                        tempHeader.irpList.Add(tempIRP);
                    }

                    response.headerList.Add(tempHeader);
                }
                db.SaveChanges();
            }

            return(response);
        }
Beispiel #3
0
        /// <summary>
        /// Get all IRP calculations for display
        /// </summary>
        /// <param name="assessmentId"></param>
        /// <returns></returns>
        public ACETDashboard GetIrpCalculation(int assessmentId)
        {
            ACETDashboard result   = new ACETDashboard();
            int           idOffset = 1;

            using (var db = new CSET_Context())
            {
                // now just properties on an Assessment
                ASSESSMENTS assessment = db.ASSESSMENTS.FirstOrDefault(a => a.Assessment_Id == assessmentId);
                if (assessment == null)
                {
                    return(null);
                }
                result.CreditUnionName = assessment.CreditUnionName;
                result.Charter         = assessment.Charter;
                result.Assets          = assessment.Assets;

                result.Hours = (new AdminTabManager()).GetTabData(assessmentId).GrandTotal;

                //IRP Section
                result.Override       = assessment.IRPTotalOverride ?? 0;
                result.OverrideReason = assessment.IRPTotalOverrideReason;
                foreach (IRP_HEADER header in db.IRP_HEADER)
                {
                    IRPSummary summary = new IRPSummary();
                    summary.HeaderText = header.Header;

                    ASSESSMENT_IRP_HEADER headerInfo = db.ASSESSMENT_IRP_HEADER.FirstOrDefault(h => h.IRP_HEADER_.IRP_Header_Id == header.IRP_Header_Id && h.ASSESSMENT_.Assessment_Id == assessmentId);
                    if (headerInfo != null)
                    {
                        summary.RiskLevelId = headerInfo.HEADER_RISK_LEVEL_ID ?? 0;
                        summary.RiskLevel   = headerInfo.RISK_LEVEL.Value;
                        summary.Comment     = headerInfo.COMMENT;
                    }

                    List <IRP> irps = db.IRP.Where(i => i.Header_Id == header.IRP_Header_Id).ToList();
                    Dictionary <int, ASSESSMENT_IRP> dictionaryIRPS = db.ASSESSMENT_IRP.Where(x => x.Assessment_Id == assessmentId).ToDictionary(x => x.IRP_Id, x => x);
                    foreach (IRP irp in irps)
                    {
                        ASSESSMENT_IRP answer = null;
                        dictionaryIRPS.TryGetValue(irp.IRP_ID, out answer);
                        //ASSESSMENT_IRP answer = irp.ASSESSMENT_IRP.FirstOrDefault(i => i.Assessment_.Assessment_Id == assessmentId);
                        if (answer != null && answer.Response != 0)
                        {
                            summary.RiskCount[answer.Response.Value - 1]++;
                            summary.RiskSum++;
                            result.SumRisk[answer.Response.Value - 1]++;
                            result.SumRiskTotal++;
                        }
                    }

                    result.IRPs.Add(summary);
                }

                //go back through the IRPs and calculate the Risk Level for each section
                foreach (IRPSummary irp in result.IRPs)
                {
                    int MaxRisk = 0;
                    irp.RiskLevel = 0;
                    for (int i = 0; i < irp.RiskCount.Length; i++)
                    {
                        if (irp.RiskCount[i] >= MaxRisk && irp.RiskCount[i] > 0)
                        {
                            MaxRisk       = irp.RiskCount[i];
                            irp.RiskLevel = i + 1;
                        }
                    }
                }

                db.SaveChanges();

                result.SumRiskLevel = 1;
                int maxRisk = 0;
                for (int i = 0; i < result.SumRisk.Length; i++)
                {
                    if (result.SumRisk[i] >= maxRisk && result.SumRisk[i] > 0)
                    {
                        result.SumRiskLevel = i + 1;
                        maxRisk             = result.SumRisk[i];
                    }
                }
            }

            return(result);
        }
Beispiel #4
0
        public ACETDashboard LoadDashboard(int assessmentId)
        {
            ACETDashboard result   = new ACETDashboard();
            int           idOffset = 1;


            using (var db = new CSET_Context())
            {
                // now just properties on an Assessment
                ASSESSMENTS assessment = db.ASSESSMENTS.FirstOrDefault(a => a.Assessment_Id == assessmentId);
                if (assessment == null)
                {
                    return(null);
                }
                result.CreditUnionName = assessment.CreditUnionName;
                result.Charter         = assessment.Charter;
                result.Assets          = assessment.Assets;

                result.Hours = (new AdminTabManager()).GetTabData(assessmentId).GrandTotal;

                //IRP Section
                result.Override       = assessment.IRPTotalOverride ?? 0;
                result.OverrideReason = assessment.IRPTotalOverrideReason;
                foreach (IRP_HEADER header in db.IRP_HEADER)
                {
                    IRPSummary summary = new IRPSummary();
                    summary.HeaderText = header.Header;

                    ASSESSMENT_IRP_HEADER headerInfo = db.ASSESSMENT_IRP_HEADER.FirstOrDefault(h => h.IRP_Header_.IRP_Header_Id == header.IRP_Header_Id && h.Assessment_.Assessment_Id == assessmentId);
                    if (headerInfo != null)
                    {
                        summary.RiskLevelId = headerInfo.Header_Risk_Level_Id ?? 0;
                        summary.RiskLevel   = headerInfo.Risk_Level.Value;
                        summary.Comment     = headerInfo.Comment;
                    }
                    else
                    {
                        summary.RiskLevel = 0;
                        headerInfo        = new ASSESSMENT_IRP_HEADER()
                        {
                            Risk_Level  = 0,
                            IRP_Header_ = header
                        };
                        headerInfo.Assessment_ = assessment;
                        if (db.ASSESSMENT_IRP_HEADER.Count() == 0)
                        {
                            headerInfo.Header_Risk_Level_Id = header.IRP_Header_Id;
                        }
                        else
                        {
                            headerInfo.Header_Risk_Level_Id = db.ASSESSMENT_IRP_HEADER.Max(i => i.Header_Risk_Level_Id) + idOffset;
                            idOffset++;
                        }
                        summary.RiskLevelId = headerInfo.Header_Risk_Level_Id ?? 0;

                        db.ASSESSMENT_IRP_HEADER.Add(headerInfo);
                    }

                    List <IRP> irps = db.IRP.Where(i => i.Header_Id == header.IRP_Header_Id).ToList();
                    foreach (IRP irp in irps)
                    {
                        ASSESSMENT_IRP answer = db.ASSESSMENT_IRP.FirstOrDefault(a => a.IRP_Id == irp.IRP_ID && a.Assessment_Id == assessmentId);
                        //ASSESSMENT_IRP answer = irp.ASSESSMENT_IRP.FirstOrDefault(i => i.Assessment_.Assessment_Id == assessmentId);
                        if (answer != null && answer.Response != 0)
                        {
                            summary.RiskCount[answer.Response.Value - 1]++;
                            summary.RiskSum++;
                            result.SumRisk[answer.Response.Value - 1]++;
                            result.SumRiskTotal++;
                        }
                    }

                    result.IRPs.Add(summary);
                }

                //go back through the IRPs and calculate the Risk Level for each section
                foreach (IRPSummary irp in result.IRPs)
                {
                    int MaxRisk = 0;
                    irp.RiskLevel = 0;
                    for (int i = 0; i < irp.RiskCount.Length; i++)
                    {
                        if (irp.RiskCount[i] >= MaxRisk && irp.RiskCount[i] > 0)
                        {
                            MaxRisk       = irp.RiskCount[i];
                            irp.RiskLevel = i + 1;
                        }
                    }
                }

                db.SaveChanges();

                result.SumRiskLevel = 1;
                int maxRisk = 0;
                for (int i = 0; i < result.SumRisk.Length; i++)
                {
                    if (result.SumRisk[i] >= maxRisk && result.SumRisk[i] > 0)
                    {
                        result.SumRiskLevel = i + 1;
                        maxRisk             = result.SumRisk[i];
                    }
                }
            }

            result.Domains = new List <DashboardDomain>();
            MaturityManager       matManager = new MaturityManager();
            List <MaturityDomain> domains    = matManager.GetMaturityAnswers(assessmentId);

            foreach (var d in domains)
            {
                result.Domains.Add(new DashboardDomain
                {
                    Maturity = d.DomainMaturity,
                    Name     = d.DomainName
                });
            }

            return(result);
        }