private XElement CreateFundingInformation(FundingInfo fundingInfo) { ///// r:FundingInformationの書き出し XElement fundingInfoElem = new XElement(r + TAG_FUNDING_INFORMATION); //AgencyOrganizationReference+ fundingInfoElem.Add(CreateAgencyOrganizationReference(fundingInfo.Organization)); //GrantNumber* fundingInfoElem.Add(CreateNullable(r + TAG_GRANT_NUMBER, fundingInfo.Number)); //Description* fundingInfoElem.Add(CreateNullable(r + TAG_DESCRIPTION, ToDDIFundingInfoMoney(fundingInfo.Money))); fundingInfoElem.Add(CreateNullable(r + TAG_DESCRIPTION, ToDDIFundingInfoTitle(fundingInfo.Title))); fundingInfoElem.Add(CreateNullable(r + TAG_DESCRIPTION, ToDDIFundingInfoDateRange(fundingInfo.DateRange))); return fundingInfoElem; }
public FundingInfoVM(FundingInfo fundingInfo) { this.fundingInfo = fundingInfo; }
public static FundingInfo CreateFundingInfo(XElement fundingInfoElem, List<Organization> organizations) { FundingInfo fundingInfo = new FundingInfo(); string id = ReadReferenceID(fundingInfoElem, r + TAG_AGENCY_ORGANIZATION_REFERENCE); if (id == null) { return null; } Organization organizationModel = Organization.GetOrganization(organizations, id); if (organizationModel == null) { return null; } organizations.Remove(organizationModel); fundingInfo.Organization = organizationModel; fundingInfo.Number = (string)fundingInfoElem.Element(r + TAG_GRANT_NUMBER); IEnumerable<XElement> elements = fundingInfoElem.Elements(r + TAG_DESCRIPTION); foreach (XElement elem in elements) { string value = null; if (IsDDIFundingInfoTitle(elem.Value, ref value)) { fundingInfo.Title = value; } else if (IsDDIFundingInfoMoney(elem.Value, ref value)) { decimal money; if (Decimal.TryParse(value, out money)) { fundingInfo.Money = money; } } else if (IsDDIFundingInfoDateRange(elem.Value, ref value)) { fundingInfo.DateRange = ParseDateRange(value); } } return fundingInfo; }
private static void CreateFundingInfos(XElement codebookElem, StudyUnit studyUnit) { XElement stdyDscrElem = codebookElem.Element(cb + TAG_STDY_DSCR); if (stdyDscrElem == null) { return; } XElement citationElem = stdyDscrElem.Element(cb + TAG_CITATION); if (citationElem == null) { return; } XElement prodStmtElem = citationElem.Element(cb + TAG_PROD_STMT); if (prodStmtElem == null) { return; } IEnumerable<XElement> fundAgElems = prodStmtElem.Elements(cb + TAG_FUND_AG); IEnumerable<XElement> grantNoElems = prodStmtElem.Elements(cb + TAG_GRANT_NO); List<FundingInfo> fundingInfos = new List<FundingInfo>(); var fundAgEnumerator = fundAgElems.GetEnumerator(); var grantNoEnumerator = grantNoElems.GetEnumerator(); while (fundAgEnumerator.MoveNext() && grantNoEnumerator.MoveNext()) { string organizationName = fundAgEnumerator.Current.Value; string number = grantNoEnumerator.Current.Value; FundingInfo fundingInfo = new FundingInfo(); fundingInfo.Number = number; fundingInfo.Organization.OrganizationName = organizationName; fundingInfos.Add(fundingInfo); } if (fundingInfos.Count > 0) { studyUnit.FundingInfos = fundingInfos; } }