Esempio n. 1
0
        /// <summary>
        /// Saves a new text value override in a PARAMETER_VALUES row.
        /// Creates a new Answer if need be.
        /// If no text is provided, any PARAMETER_VALUES is deleted.
        /// </summary>
        /// <param name="requirementId"></param>
        /// <param name="parameterId"></param>
        /// <param name="answerId"></param>
        /// <param name="newText"></param>
        /// <returns></returns>
        public ParameterToken SaveAnswerParameter(int requirementId, int parameterId, int answerId, string newText)
        {
            // create an answer if there isn't one already
            if (answerId == 0)
            {
                Answer ans = new Answer()
                {
                    QuestionId     = requirementId,
                    Is_Requirement = true,
                    MarkForReview  = false,
                    QuestionNumber = 0,
                    AnswerText     = "U"
                };
                answerId = StoreAnswer(ans);
            }

            using (var db = new CSET_Context())
            {
                // If an empty value is supplied, delete the PARAMETER_VALUES row.
                if (string.IsNullOrEmpty(newText))
                {
                    var g = db.PARAMETER_VALUES.Where(pv => pv.Parameter_Id == parameterId && pv.Answer_Id == answerId).FirstOrDefault();
                    if (g != null)
                    {
                        db.PARAMETER_VALUES.Remove(g);
                        db.SaveChanges();
                    }

                    AssessmentUtil.TouchAssessment(_assessmentId);

                    return(this.GetTokensForRequirement(requirementId, answerId).Where(p => p.Id == parameterId).First());
                }


                // Otherwise, add or update the PARAMETER_VALUES row
                var dbParameterValues = db.PARAMETER_VALUES.Where(pv => pv.Parameter_Id == parameterId &&
                                                                  pv.Answer_Id == answerId).FirstOrDefault();

                if (dbParameterValues == null)
                {
                    dbParameterValues = new PARAMETER_VALUES();
                }

                dbParameterValues.Answer_Id            = answerId;
                dbParameterValues.Parameter_Id         = parameterId;
                dbParameterValues.Parameter_Is_Default = false;
                dbParameterValues.Parameter_Value      = newText;


                if (db.PARAMETER_VALUES.Find(dbParameterValues.Answer_Id, dbParameterValues.Parameter_Id) == null)
                {
                    db.PARAMETER_VALUES.Add(dbParameterValues);
                }
                else
                {
                    db.PARAMETER_VALUES.Update(dbParameterValues);
                }
                db.SaveChanges();

                AssessmentUtil.TouchAssessment(_assessmentId);

                // Return the token that was just updated
                return(this.GetTokensForRequirement(requirementId, answerId).Where(p => p.Id == parameterId).First());
            }
        }
Esempio n. 2
0
 public ParameterContainer(vParameter parameter, PARAMETER_VALUES value)
 {
     this.parameter = parameter;
     this.value     = value;
 }