public SamplingVM(Sampling sampling) { this.sampling = sampling; this.universes = new ObservableCollection<UniverseVM>(); foreach (Universe universeModel in sampling.Universes) { UniverseVM universe = new UniverseVM(universeModel); universe.Parent = this; universes.Add(universe); } samplingMethods = Options.SamplingMethods; modelSyncher = new ModelSyncher<UniverseVM, Universe>(this, universes, sampling.Universes); }
private string SamplingError(string message, Sampling samplingModel) { return message + "(" + samplingModel.Title + ")"; }
public Universe FindUniverse(string universeId) { return(Sampling.FindUniverse(Samplings, universeId)); }
public Universe FindMainUniverse() { return(Sampling.FindMainUniverse(Samplings)); }
public static void CreateSampling(XElement studyUnitElem, StudyUnit studyUnit) { XElement dataCollectionElem = studyUnitElem.Element(d + TAG_DATA_COLLECTION); if (dataCollectionElem == null) { return; } string dataCollectionId = (string)dataCollectionElem.Attribute(ATTR_ID); if (dataCollectionId == null) { return; } XElement methodologyElem = dataCollectionElem.Element(d + TAG_METHODOLOGY); if (methodologyElem == null) { return; } string methodologyId = (string)methodologyElem.Attribute(ATTR_ID); if (methodologyElem == null) { return; } List<Sampling> samplingModesl = new List<Sampling>(); IEnumerable<XElement> collectionEventElems = dataCollectionElem.Elements(d + TAG_COLLECTION_EVENT); foreach (XElement collectionEventElem in collectionEventElems) { Sampling samplingModel = new Sampling(); samplingModel.DateRange = ReadDateRange(collectionEventElem, d + TAG_DATA_COLLECTION_DATE); samplingModel.MemberId = ReadReferenceID(collectionEventElem, d + TAG_DATA_COLLECTOR_ORGANIZATION_REFERENCE); XElement modeOfCollection = collectionEventElem.Element(d + TAG_MODE_OF_COLLECTION); if (modeOfCollection != null) { string content = (string)modeOfCollection.Element(r + TAG_CONTENT); samplingModel.MethodCode = Option.FindCodeByLabel(Options.SamplingMethods, content); } XElement situationElem = collectionEventElem.Element(d + TAG_COLLECTION_SITUATION); if (situationElem != null) { samplingModel.Situation = (string)situationElem.Element(r + TAG_CONTENT); } samplingModesl.Add(samplingModel); } studyUnit.MethodologyId = methodologyId; studyUnit.DataCollectionId = dataCollectionId; if (samplingModesl.Count > 0) { studyUnit.Samplings = samplingModesl; } }
private static void CreateSamplings(XElement codebookElem, StudyUnit studyUnit, ReaderContext context) { XElement stdyDscrElem = codebookElem.Element(cb + TAG_STDY_DSCR); if (stdyDscrElem == null) { return; } XElement methodElem = stdyDscrElem.Element(cb + TAG_METHOD); if (methodElem == null) { return; } List<Sampling> samplings = new List<Sampling>(); IEnumerable<XElement> dataCollElems = methodElem.Elements(cb + TAG_DATA_COLL); foreach (XElement dataCollElem in dataCollElems) { Sampling sampling = new Sampling(); samplings.Add(sampling); //データ収集方法 string method = (string)dataCollElem.Element(cb + TAG_COLL_MODE); sampling.MethodCode = Option.FindCodeByLabel(Options.SamplingMethods, method); //データ収集字の状況 sampling.Situation = (string)dataCollElem.Element(cb + TAG_COLL_SITU); //データ収集の責任者 XElement dataCollectorElem = dataCollElem.Element(cb + TAG_DATA_COLLECTOR); if (dataCollectorElem != null) { Member newMember = CreateMember(dataCollectorElem, null); Member existMember = Member.FindByName(studyUnit.Members, newMember.LastName, newMember.FirstName); if (existMember != null) { newMember = existMember; } else { CreateOrganization(dataCollectorElem, newMember, studyUnit.Organizations); studyUnit.Members.Add(newMember); } sampling.MemberId = newMember.Id; } //サンプリング方法の読み込み List<string> samplingMethodsPerTab = new List<string>(); IEnumerable<XElement> sampProcElems = dataCollElem.Elements(cb + TAG_SAMP_PROC); foreach (XElement sampProcElem in sampProcElems) { samplingMethodsPerTab.Add(sampProcElem.Value); } //書くタブごとのサンプリング方法を記憶(母集団読み込み時に反映) context.SamplingMethods[sampling.Id] = samplingMethodsPerTab; } //データ収集年月 XElement stdyInfoElem = stdyDscrElem.Element(cb + TAG_STDY_INFO); if (stdyInfoElem != null) { XElement sumDscrElem = stdyInfoElem.Element(cb + TAG_SUM_DSCR); if (sumDscrElem != null) { List<DateRange> dateRanges = ReadDateRanges(sumDscrElem.Elements(cb + TAG_COLL_DATE)); for (int i = 0; i < samplings.Count && i < dateRanges.Count; i++ ) { Sampling sampling = samplings[i]; DateRange dateRange = dateRanges[i]; if (dateRange != null) //dateRangeは不正な文字列の場合nullになっている場合もありうるのでチェックが必要 { sampling.DateRange = dateRange; } } } } if (samplings.Count > 0) { studyUnit.Samplings = samplings; } }