Esempio n. 1
0
        public Finding GetFinding([FromUri] int Answer_Id, int Finding_id, int Question_Id)
        {
            int assessmentId = Auth.AssessmentForUser();

            using (CSET_Context context = new CSET_Context())
            {
                if (Answer_Id == 0)
                {
                    QuestionsManager questions = new QuestionsManager(assessmentId);
                    Answer_Id = questions.StoreAnswer(new Answer()
                    {
                        QuestionId    = Question_Id,
                        MarkForReview = false
                    });
                }
                FindingsViewModel fm = new FindingsViewModel(context, assessmentId, Answer_Id);
                return(fm.GetFinding(Finding_id));
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="questionId"></param>
        /// <param name="assessmentId"></param>
        /// <param name="IsComponent"></param>
        /// <param name="IsMaturity"></param>
        /// <returns></returns>
        internal List <QuestionInformationTabData> GetQuestionDetails(int?questionId, int assessmentId, bool IsComponent, bool IsMaturity)
        {
            if (questionId == null)
            {
                SetQuestionInfoTabToEmpty();
                return(ListTabs);
            }

            this.IsNoQuestion          = false;
            this.IsDetailAndInfo       = true;
            this.ShowQuestionDetailTab = false;


            if (questionId != null)
            {
                AssessmentModeData mode = new AssessmentModeData(this.DataContext, assessmentId);
                bool IsQuestion         = mode.IsQuestion;
                bool IsRequirement      = IsComponent ? !IsComponent : mode.IsRequirement;
                var  newqp     = this.DataContext.NEW_QUESTION.Where(q => q.Question_Id == questionId).FirstOrDefault();
                var  newAnswer = this.DataContext.ANSWER.Where(a => a.Question_Or_Requirement_Id == questionId &&
                                                               a.Is_Requirement == IsRequirement && a.Assessment_Id == assessmentId).FirstOrDefault();
                var gettheselectedsets = this.DataContext.AVAILABLE_STANDARDS.Where(x => x.Assessment_Id == assessmentId);



                if (newAnswer == null)
                {
                    newAnswer = new ANSWER()
                    {
                        Is_Requirement             = IsRequirement,
                        Is_Maturity                = IsMaturity,
                        Question_Or_Requirement_Id = questionId ?? 0,
                        Answer_Text                = AnswerEnum.UNANSWERED.GetStringAttribute(),
                        Mark_For_Review            = false,
                        Reviewed     = false,
                        Is_Component = false
                    };

                    // set the question type
                    newAnswer.Question_Type = "Question";
                    if ((bool)newAnswer.Is_Requirement)
                    {
                        newAnswer.Question_Type = "Requirement";
                    }
                    if ((bool)newAnswer.Is_Maturity)
                    {
                        newAnswer.Question_Type = "Maturity";
                    }
                    if ((bool)newAnswer.Is_Component)
                    {
                        newAnswer.Question_Type = "Component";
                    }

                    DataContext.ANSWER.Add(newAnswer);
                }

                QuestionPoco qp = null;

                if (IsMaturity)
                {
                    var matQuestion = this.DataContext.MATURITY_QUESTIONS.Where(q => q.Mat_Question_Id == questionId).FirstOrDefault();
                    qp = new QuestionPoco(newAnswer, matQuestion);
                }
                else
                {
                    qp = new QuestionPoco(newAnswer, newqp);
                }

                qp.DictionaryStandards = (from a in this.DataContext.AVAILABLE_STANDARDS
                                          join b in this.DataContext.SETS on a.Set_Name equals b.Set_Name
                                          where a.Selected == true &&
                                          a.Assessment_Id == assessmentId
                                          select b
                                          ).ToDictionary(x => x.Set_Name, x => x);

                qp.DefaultSetName = qp.DictionaryStandards.Keys.FirstOrDefault();
                qp.SetName        = qp.DictionaryStandards.Keys.FirstOrDefault();

                LoadData(qp, assessmentId);

                // Get any findings/discoveries for the question
                FindingsViewModel fm = new FindingsViewModel(this.DataContext, assessmentId, newAnswer.Answer_Id);
                this.Findings = fm.AllFindings();

                // Get any documents attached to the question
                DocumentManager dm = new DocumentManager(assessmentId);
                this.Documents = dm.GetDocumentsForAnswer(newAnswer.Answer_Id);

                //Get any components
            }

            var json = JsonConvert.SerializeObject(ListTabs);

            return(ListTabs);
        }