private void CreateVariableFor(QuestionVM question, int questionIndex) { VariableGenerationInfo oldInfo = question.VariableGenerationInfo; VariableGenerationInfo newInfo = question.CreateVariableGenerationInfo(); if (oldInfo != null && oldInfo.VariableGenerationType == newInfo.VariableGenerationType) { return; } question.VariableGenerationInfo = newInfo; // remove old variables List <VariableVM> generatedVariables = VariableVM.FindByQuestionId(Variables, question.Id); Debug.WriteLine(generatedVariables.Count); int removeIndex = Variables.Count; foreach (VariableVM variable in generatedVariables) { if (removeIndex == Variables.Count) { removeIndex = Variables.IndexOf(variable); } StudyUnit.OnRemoveVariable(variable); Variables.Remove(variable); } // create single or multiple variables if (newInfo.VariableGenerationType == VariableGenerationType.SingleVariable) { CreateVariable((variableMovel) => { variableMovel.Title = "V" + (questionIndex + 1); }, question, removeIndex); } else { CodeSchemeVM codeScheme = question.Response.CodeScheme; ICollection <CodeVM> codes = codeScheme.Codes; string variablePrefix = "V" + (questionIndex + 1) + "_"; foreach (CodeVM code in codes) { CreateVariable((variableModel) => { variableModel.Title = variablePrefix + code.Value; variableModel.Label = code.Label; variableModel.Response = question.DupResponseModel(); variableModel.Response.TypeCode = Options.RESPONSE_TYPE_CHOICES_CODE; variableModel.Response.CodeSchemeId = StudyUnit.BinaryCodeSchemeId; }, question, removeIndex++); } } }
public VariableFormVM(StudyUnitVM studyUnit) : base(studyUnit) { variables = new ObservableCollection <VariableVM>(); foreach (Variable variableModel in studyUnit.VariableModels) { //Create VariableVM VariableVM variable = new VariableVM(variableModel); InitVariable(variable); //Create ResponseVM variable.Response = CreateResponse(variableModel.Response); //Add to array variables.Add(variable); } modelSyncher = new ModelSyncher <VariableVM, Variable>(this, variables, studyUnit.VariableModels); }
public VariableFormVM(StudyUnitVM studyUnit) : base(studyUnit) { variables = new ObservableCollection<VariableVM>(); foreach (Variable variableModel in studyUnit.VariableModels) { //VariableVMの生成 VariableVM variable = new VariableVM(variableModel); InitVariable(variable); //ResponseVMの生成 variable.Response = CreateResponse(variableModel.Response); //配列に追加 variables.Add(variable); } modelSyncher = new ModelSyncher<VariableVM, Variable>(this, variables, studyUnit.VariableModels); }
private void CreateVariable(Action <Variable> action, QuestionVM question, int removeIndex) { Variable variableModel = new Variable(); variableModel.Label = question.Title; variableModel.ConceptId = question.Question.ConceptId; variableModel.QuestionId = question.Id; variableModel.UniverseId = StudyUnit.DefaultUniverseGuid; variableModel.Response = question.DupResponseModel(); action(variableModel); variableModel.Response.Title = null; //Stay this null because the title in Response Style of variables cannot be set. variableModel.GeneratorQuestionId = question.Id; VariableVM newVariable = new VariableVM(variableModel); InitVariable(newVariable); newVariable.Response = CreateResponse(variableModel.Response); Variables.Insert(removeIndex, newVariable); }
public void OnRemoveVariable(VariableVM variable) { dataSetForm.RemoveVariable(variable); bookForm.OnRemoveVariable(variable); }
public void InitVariable(VariableVM variable) { variable.Parent = this; variable.ResponseTypes = Options.ResponseTypes; }
public List <VariableVM> FindVariablesByQuestionId(string questionId) { return(VariableVM.FindByQuestionId(Variables, questionId)); }
public List <VariableVM> FindVariablesByUniverseId(string universeId) { return(VariableVM.FindByUniverseId(Variables, universeId)); }
public VariableVM FindVariable(string variableId) { return(VariableVM.Find(Variables, variableId)); }
private string VariableType(VariableVM variable) { ResponseVM response = variable.Response; string type = ""; if (response.IsTypeChoices) { if (response.ValidCodes.Count > 0) { type = "F"; } else { type = "A"; } } else if (response.IsTypeNumber) { type = "F"; } else if (response.IsTypeFree) { type = "A"; } else if (response.IsTypeDateTime) { type = "F"; } return type; }
private DataSetVariableVM createDataSetVariable(VariableVM variable) { ConceptVM concept = StudyUnit.FindConcept(variable.ConceptId); //if (concept == null) //{ // return null; //} DataSetVariableVM v = new DataSetVariableVM(); v.Id = variable.Variable.Id; v.Title = variable.Title; v.Label = variable.Label; v.ConceptTitle = concept == null ? null : concept.Title; return v; }
public void RemoveVariable(VariableVM variable) { foreach (DataSetVM dataSet in dataSets) { dataSet.RemoveVariable(variable.Id); } }
private void CreateVariableFor(QuestionVM question) { if (question.IsCreatedVariable) { //既に生成済みの場合作らない return; } VariableVM variable = VariableVM.FindByQuestionId(Variables, question.Id); if (variable != null) { //既に存在している場合は作らない(フラグで処理しているので念のため?) return; } question.IsCreatedVariable = true; Variable variableModel = new Variable(); variableModel.Title = "V" + (Variables.Count + 1); variableModel.Label = question.Title; variableModel.ConceptId = question.Question.ConceptId; variableModel.QuestionId = question.Id; variableModel.UniverseId = StudyUnit.DefaultUniverseGuid; variableModel.Response = question.DupResponseModel(); variableModel.Response.Title = null; //変数の回答法にはタイトル設定はできないのでnullにしておく。こうしておくことで変数設計画面で1からコードをいれたときのコード群名の生成が正しくなる。 VariableVM newVariable = new VariableVM(variableModel); InitVariable(newVariable); newVariable.Response = CreateResponse(variableModel.Response); variables.Add(newVariable); }
public void InitVariable(VariableVM variable) { variable.Parent = this; variable.ResponseTypes = Options.ResponseTypes; }
private XElement CreateVar(VariableVM variable) { string representationType = GetRepresentationType(variable.Response.TypeCode); string parentConvertId = ConvertId(variable.Id); XElement varElem = new XElement(cb + TAG_VAR, CreateIDAttribute(parentConvertId), CreateNullableAttr(ATTR_FILES, JoinDataSetIds(variable.Variable)), new XAttribute(ATTR_NAME, variable.Title), CreateNullableAttr(ATTR_REPRESENTATION_TYPE, representationType), new XAttribute(ATTR_INTRVL, "discrete"), CreateNullable(cb + TAG_LABL, variable.Label)); QuestionVM question = studyUnit.FindQuestion(variable.QuestionId); if (question != null) { XElement qstn = CreateQstn(question); varElem.Add(qstn); } AppendResponseElelems(varElem, parentConvertId, variable.Response); return varElem; }
public void OnRemoveVariable(VariableVM variable) { RemoveBookRelationOfMetaData(variable.Id); }