public int StoreAnswer([FromBody] Answer answer) { if (answer == null) { return(0); } int assessmentId = Auth.AssessmentForUser(); string applicationMode = GetApplicationMode(assessmentId); if (answer.Is_Component) { QuestionsManager qm = new QuestionsManager(assessmentId); return(qm.StoreComponentAnswer(answer)); } if (answer.Is_Requirement) { RequirementsManager rm = new RequirementsManager(assessmentId); return(rm.StoreAnswer(answer)); } if (answer.Is_Maturity) { MaturityManager mm = new MaturityManager(); return(mm.StoreAnswer(assessmentId, answer)); } QuestionsManager qm2 = new QuestionsManager(assessmentId); return(qm2.StoreAnswer(answer)); }
public List <MaturityReportData.MaturityQuestion> GetRRAQuestions() { var questions = new List <MaturityReportData.MaturityQuestion>(); int assessmentId = Auth.AssessmentForUser(); var mm = new MaturityManager(); var resp = mm.GetMaturityQuestions(assessmentId, false, true); // get all supplemental info for questions, because it is not included in the previous method var dict = mm.GetReferences(assessmentId); resp.Groupings.First().SubGroupings.ForEach(goal => goal.Questions.ForEach(q => { var newQ = new MaturityReportData.MaturityQuestion { Question_Title = q.DisplayNumber, Question_Text = q.QuestionText, Answer = new ANSWER() { Answer_Text = q.Answer }, ReferenceText = dict[q.QuestionId] }; questions.Add(newQ); })); return(questions); }
public IHttpActionResult GetMaturityRange() { int assessmentId = Auth.AssessmentForUser(); MaturityManager manager = new MaturityManager(); var maturityRange = manager.GetMaturityRange(assessmentId); return(Ok(maturityRange)); }
public IHttpActionResult GetMaturityResults() { int assessmentId = Auth.AssessmentForUser(); MaturityManager manager = new MaturityManager(); var maturity = manager.GetMaturityAnswers(assessmentId); return(Ok(maturity)); }
/// <summary> /// /// </summary> /// <returns></returns> private void GetMaturityModelDetails(ref AssessmentDetail assessment, CSET_Context db) { int assessmentId = assessment.Id; var maturityManager = new MaturityManager(); assessment.MaturityModel = maturityManager.GetMaturityModel(assessmentId); }
public int StoreAnswer([FromBody] Answer answer) { if (answer == null) { return(0); } if (String.IsNullOrWhiteSpace(answer.QuestionType)) { if (answer.Is_Component) { answer.QuestionType = "Component"; } if (answer.Is_Maturity) { answer.QuestionType = "Maturity"; } if (answer.Is_Requirement) { answer.QuestionType = "Requirement"; } if (!answer.Is_Requirement && !answer.Is_Maturity && !answer.Is_Component) { answer.QuestionType = "Question"; } } int assessmentId = Auth.AssessmentForUser(); string applicationMode = GetApplicationMode(assessmentId); if (answer.Is_Component) { QuestionsManager qm = new QuestionsManager(assessmentId); return(qm.StoreComponentAnswer(answer)); } if (answer.Is_Requirement) { RequirementsManager rm = new RequirementsManager(assessmentId); return(rm.StoreAnswer(answer)); } if (answer.Is_Maturity) { MaturityManager mm = new MaturityManager(); return(mm.StoreAnswer(assessmentId, answer)); } QuestionsManager qm2 = new QuestionsManager(assessmentId); return(qm2.StoreAnswer(answer)); }
/// <summary> /// Set features based on existence of data. This is used for assessments that were /// created prior to incorporating features into the assessment data model. /// </summary> /// <param name="assessment"></param> private void DetermineFeaturesFromData(ref AssessmentDetail assessment, CSET_Context db) { var a = assessment; if (db.AVAILABLE_STANDARDS.Any(x => x.Assessment_Id == a.Id)) { assessment.UseStandard = true; } if (db.ASSESSMENT_DIAGRAM_COMPONENTS.Any(x => x.Assessment_Id == a.Id)) { BusinessManagers.DiagramManager dm = new BusinessManagers.DiagramManager(db); assessment.UseDiagram = dm.HasDiagram(a.Id); } // determine if there are maturity answers and attach maturity models var maturityAnswers = db.ANSWER.Where(x => x.Assessment_Id == a.Id && x.Question_Type.ToLower() == "maturity").ToList(); if (maturityAnswers.Count > 0) { assessment.UseMaturity = true; if (!db.AVAILABLE_MATURITY_MODELS.Any(x => x.Assessment_Id == a.Id)) { // determine the maturity models represented by the questions that have been answered var qqq = db.MATURITY_QUESTIONS.Where(q => maturityAnswers.Select(x => x.Question_Or_Requirement_Id).Contains(q.Mat_Question_Id)).ToList(); var maturityModelIds = qqq.Select(x => x.Maturity_Model_Id).Distinct().ToList(); foreach (var modelId in maturityModelIds) { var mm = new AVAILABLE_MATURITY_MODELS() { Assessment_Id = a.Id, model_id = modelId, Selected = true }; db.AVAILABLE_MATURITY_MODELS.Add(mm); db.SaveChanges(); // get the newly-attached model for the response var mmm = new MaturityManager(); assessment.MaturityModel = mmm.GetMaturityModel(a.Id); } } } SaveAssessmentDetail(a.Id, assessment); }
public IHttpActionResult GetReferenceText(string model) { try { var maturityManager = new MaturityManager(); var refText = maturityManager.GetReferenceText(model); return(Ok(refText)); } catch (Exception ex) { return(BadRequest()); } }
/// <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()); }
public IHttpActionResult GetEdmScores() { try { int assessmentId = Auth.AssessmentForUser(); MaturityManager maturityManager = new MaturityManager(); var scores = maturityManager.GetEdmScores(assessmentId); return(Ok(scores)); } catch (Exception ex) { return(BadRequest()); } }
/// <summary> /// Get IRP calculations and domains for dashboard display /// </summary> /// <param name="assessmentId"></param> /// <returns></returns> public ACETDashboard LoadDashboard(int assessmentId) { ACETDashboard result = GetIrpCalculation(assessmentId); 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); }
/// <summary> /// Persists data to the ASSESSMENTS and INFORMATION tables. /// Date fields should be converted to UTC before sending the Assessment /// to this method. /// </summary> /// <param name="assessment"></param> /// <returns></returns> public int SaveAssessmentDetail(int assessmentId, AssessmentDetail assessment) { using (var db = new DataLayerCore.Model.CSET_Context()) { TokenManager tm = new TokenManager(); string app_code = tm.Payload(Constants.Token_Scope); // Add or update the ASSESSMENTS record var dbAssessment = db.ASSESSMENTS.Where(x => x.Assessment_Id == assessmentId).FirstOrDefault(); if (dbAssessment == null) { dbAssessment = new ASSESSMENTS(); db.ASSESSMENTS.Add(dbAssessment); db.SaveChanges(); assessmentId = dbAssessment.Assessment_Id; } dbAssessment.Assessment_Id = assessmentId; dbAssessment.AssessmentCreatedDate = assessment.CreatedDate; dbAssessment.AssessmentCreatorId = assessment.CreatorId; dbAssessment.Assessment_Date = assessment.AssessmentDate ?? DateTime.Now; dbAssessment.LastAccessedDate = assessment.LastModifiedDate; dbAssessment.UseDiagram = assessment.UseDiagram; dbAssessment.UseMaturity = assessment.UseMaturity; dbAssessment.UseStandard = assessment.UseStandard; dbAssessment.Charter = string.IsNullOrEmpty(assessment.Charter) ? "00000" : assessment.Charter.PadLeft(5, '0'); dbAssessment.CreditUnionName = assessment.CreditUnion; dbAssessment.Assets = assessment.Assets; dbAssessment.MatDetail_targetBandOnly = (app_code == "ACET"); dbAssessment.Diagram_Markup = assessment.DiagramMarkup; dbAssessment.Diagram_Image = assessment.DiagramImage; dbAssessment.AnalyzeDiagram = false; db.ASSESSMENTS.AddOrUpdate(dbAssessment, x => x.Assessment_Id); db.SaveChanges(); var user = db.USERS.FirstOrDefault(x => x.UserId == dbAssessment.AssessmentCreatorId); var dbInformation = db.INFORMATION.Where(x => x.Id == assessmentId).FirstOrDefault(); if (dbInformation == null) { dbInformation = new INFORMATION() { Id = assessmentId }; } if (app_code == "ACET") { var creditUnion = string.IsNullOrEmpty(assessment.CreditUnion) ? string.Empty : assessment.CreditUnion + " "; assessment.AssessmentName = app_code + " " + dbAssessment.Charter + " " + creditUnion + dbAssessment.Assessment_Date.ToString("MMddyy"); } // add or update the INFORMATION record dbInformation.Assessment_Name = assessment.AssessmentName; dbInformation.Facility_Name = assessment.FacilityName; dbInformation.City_Or_Site_Name = assessment.CityOrSiteName; dbInformation.State_Province_Or_Region = assessment.StateProvRegion; dbInformation.Executive_Summary = assessment.ExecutiveSummary; dbInformation.Assessment_Description = assessment.AssessmentDescription; dbInformation.Additional_Notes_And_Comments = assessment.AdditionalNotesAndComments; dbInformation.IsAcetOnly = assessment.IsAcetOnly; db.INFORMATION.AddOrUpdate(dbInformation, x => x.Id); db.SaveChanges(); // persist maturity data var mm = new MaturityManager(); if (assessment.UseMaturity) { mm.PersistSelectedMaturityModel(assessmentId, assessment.MaturityModel?.ModelName); } else { mm.ClearMaturityModel(assessmentId); } AssessmentUtil.TouchAssessment(assessmentId); return(assessmentId); } }
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); }
public List <GlossaryEntry> GetGlossaryEntries(string model) { MaturityManager maturityManager = new MaturityManager(); return(maturityManager.GetGlossaryEntries(model)); }