Пример #1
0
    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        var _sql =
            @"SELECT TOP 1 [MessageSpec_ID] ,[CBCReport]   FROM [FDR].[dbo].[X_MessageSpec] where [MessageSpec_ID] not in (select [MessageSpec_ID] from [dbo].[X_AdditionalInfo]) and [CBCReport] is not null";

        using (var data = new RecordSet(_sql, QueryType.TransectSQL, null))
        {
            if (data.HasRows)
            {
                foreach (DataRow row in data.Tables[0].Rows)
                {
                    var messageSpecId = Convert.ToDecimal(row["MessageSpec_ID"]);
                    var cbcXml        = row["CBCReport"].ToString();
                    var cbcMessage    = XmlObjectSerializer.ConvertXmlToObject <CBC_OECD>(cbcXml);
                    if (cbcMessage == null)
                    {
                        continue;
                    }

                    foreach (var cbcBodyType in cbcMessage.CbcBody)
                    {
                        if (cbcBodyType.AdditionalInfo != null)
                        {
                            foreach (var addInfo in cbcBodyType.AdditionalInfo)
                            {
                                var additionalInfoId = 0M;
                                additionalInfoId = DBWriteManager.Save_X_AdditionalInfo(
                                    additionalInfoId
                                    , addInfo.DocSpec.DocTypeIndic.ToString()
                                    , addInfo.DocSpec.DocRefId
                                    , addInfo.DocSpec.CorrMessageRefId
                                    , addInfo.DocSpec.CorrDocRefId
                                    , addInfo.OtherInfo
                                    , messageSpecId
                                    );
                                if (additionalInfoId > 0)
                                {
                                    if (addInfo.ResCountryCode != null)
                                    {
                                        foreach (var countryCodeType in addInfo.ResCountryCode)
                                        {
                                            DBWriteManager.X_AdditionalInfo_ResCountryCode(
                                                0M
                                                , countryCodeType.ToString()
                                                , additionalInfoId
                                                );
                                        }
                                    }
                                    if (addInfo.SummaryRef != null)
                                    {
                                        foreach (var cbcSummary in addInfo.SummaryRef)
                                        {
                                            DBWriteManager.Save_X_AdditionalInfo_SummaryRef(
                                                0M
                                                , cbcSummary.ToString()
                                                , additionalInfoId
                                                );
                                        }
                                    }
                                }
                            }
                        }
                    }
                    break;
                }
            }
        }
    }