/// <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()); } }
public ParameterContainer(vParameter parameter, PARAMETER_VALUES value) { this.parameter = parameter; this.value = value; }