示例#1
0
 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;
 }
示例#2
0
 public FundingInfoVM(FundingInfo fundingInfo)
 {
     this.fundingInfo = fundingInfo;
 }
示例#3
0
 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;
 }
示例#4
0
        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;
            }
        }