コード例 #1
0
        public void SaveDiagram([FromBody] DiagramRequest req)
        {
            // get the assessment ID from the JWT
            TokenManager tm           = new TokenManager();
            int          userId       = (int)tm.PayloadInt(Constants.Token_UserId);
            int?         assessmentId = tm.PayloadInt(Constants.Token_AssessmentId);

            lock (_object)
            {
                using (var db = new CSET_Context())
                {
                    try
                    {
                        BusinessManagers.DiagramManager dm = new BusinessManagers.DiagramManager(db);
                        XmlDocument xDoc = new XmlDocument();
                        if (string.IsNullOrEmpty(req.DiagramXml))
                        {
                            req.DiagramXml = "<mxGraphModel grid=\"1\" gridSize=\"10\"><root><mxCell id=\"0\"><mxCell id=\"1\" parent=\"0\" /></mxCell></root></mxGraphModel>";
                        }
                        xDoc.LoadXml(req.DiagramXml);
                        dm.SaveDiagram((int)assessmentId, xDoc, req);
                    }
                    catch (Exception e)
                    {
                        throw e;
                    }
                }
            }
        }
コード例 #2
0
 public List <ComponentSymbolGroup> GetComponentSymbols()
 {
     using (var db = new CSET_Context())
     {
         BusinessManagers.DiagramManager dm = new BusinessManagers.DiagramManager(db);
         return(dm.GetComponentSymbols());
     }
 }
コード例 #3
0
 public IHttpActionResult GetAllSymbols()
 {
     using (var db = new CSET_Context())
     {
         BusinessManagers.DiagramManager dm = new BusinessManagers.DiagramManager(db);
         return(Ok(dm.GetAllComponentSymbols()));
     }
 }
コード例 #4
0
        public string GetDiagramImage()
        {
            int assessmentId = Auth.AssessmentForUser();

            using (var db = new CSET_Context())
            {
                BusinessManagers.DiagramManager dm = new BusinessManagers.DiagramManager(db);
                return(dm.GetDiagramImage(assessmentId));
            }
        }
コード例 #5
0
        public bool HasDiagram()
        {
            // get the assessment ID from the JWT
            TokenManager tm           = new TokenManager();
            int          userId       = (int)tm.PayloadInt(Constants.Token_UserId);
            int?         assessmentId = tm.PayloadInt(Constants.Token_AssessmentId);

            using (var db = new CSET_Context())
            {
                BusinessManagers.DiagramManager dm = new BusinessManagers.DiagramManager(db);
                return(dm.HasDiagram((int)assessmentId));
            }
        }
コード例 #6
0
ファイル: AssessmentManager.cs プロジェクト: cisagov/cset
        /// <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);
        }
コード例 #7
0
ファイル: AssessmentManager.cs プロジェクト: itcms/cset
        /// <summary>
        /// Set features based on existence of data.
        /// </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);
            }
        }
コード例 #8
0
        public DiagramResponse GetDiagram()
        {
            // get the assessment ID from the JWT
            TokenManager tm           = new TokenManager();
            int          userId       = (int)tm.PayloadInt(Constants.Token_UserId);
            int?         assessmentId = tm.PayloadInt(Constants.Token_AssessmentId);

            var response = new DiagramResponse();

            using (var db = new CSET_Context())
            {
                BusinessManagers.DiagramManager dm = new BusinessManagers.DiagramManager(db);
                response = dm.GetDiagram((int)assessmentId);
            }

            var assessmentDetail = new AssessmentController().Get();

            response.AssessmentName = assessmentDetail.AssessmentName;

            return(response);
        }
コード例 #9
0
        public List <IDiagramAnalysisNodeMessage> performAnalysis(DiagramRequest req, int assessmentId)
        {
            try
            {
                var messages = new List <IDiagramAnalysisNodeMessage>();
                if (!string.IsNullOrEmpty(req.DiagramXml))
                {
                    using (var db = new CSET_Context())
                    {
                        BusinessManagers.DiagramManager dm = new BusinessManagers.DiagramManager(db);
                        XmlDocument xDoc = new XmlDocument();
                        xDoc.LoadXml(req.DiagramXml);

                        DiagramAnalysis analysis = new DiagramAnalysis(db, assessmentId);
                        messages = analysis.PerformAnalysis(xDoc);
                    }
                }
                return(messages);
            }catch (Exception e)
            {
                throw e;
            }
        }