コード例 #1
0
        // filter LEIData object using LINQ expression to country specific set
        // append CountryCode to NameSpace (as experiment for different formats)
        private static void WriteXmlCountry(LEIData leiData, Uri outputUri, CloudBlobClient cloudBlobClient, string countryCode)
        {
            // Inititialize TopN object based on parent object
            LEIData _leiData = new LEIData
            {
                LEIHeader  = leiData.LEIHeader,
                LEIRecords = new LEIRecordsType()
            };

            // Filter only specified Country records, using LINQ Lambda Expressions
            // The Any operator enumerates the source sequence and returns true if any Country == countryCode
            _leiData.LEIRecords.LEIRecord =
                leiData.LEIRecords.LEIRecord.
                Where(rec => rec.Entity.LegalAddress.Country == countryCode ||
                      rec.Entity.HeadquartersAddress.Country == countryCode
                      ).ToList();

            // Update actual RecordCount in Header
            _leiData.LEIHeader.RecordCount = _leiData.LEIRecords.LEIRecord.Count.ToString();

            // as an Experiment, use different Namespace for this country; append the CountryCode
            XmlSerializerNamespaces ns = new XmlSerializerNamespaces();

            ns.Add("gleif" + countryCode, "http://www.gleif.org/concatenated-file/header-extension/2.0");
            ns.Add("lei" + countryCode, "http://www.gleif.org/data/schema/leidata/2016");

            // Write serialized object to Blob
            CloudBlockBlob outputBlob = new CloudBlockBlob(outputUri, cloudBlobClient);

            using (var outputStream = outputBlob.OpenWriteAsync().Result)
            {
                WriteXmlStream(_leiData, outputStream);
            }
        }
コード例 #2
0
        // filter LEIData object using LINQ expression to country specific set
        // append CountryCode to NameSpace (as experiment for different formats)
        private static void WriteXmlCountry(LEIData leiData, string fileName, string countryCode)
        {
            // Inititialize TopN object based on parent object
            LEIData _leiData = new LEIData
            {
                LEIHeader  = leiData.LEIHeader,
                LEIRecords = new LEIRecordsType()
            };

            // Filter only specified Country records, using LINQ Lambda Expressions
            // The Any operator enumerates the source sequence and returns true if any Country == countryCode
            _leiData.LEIRecords.LEIRecord =
                leiData.LEIRecords.LEIRecord.
                Where(rec => rec.Entity.LegalAddress.Country == countryCode ||
                      rec.Entity.HeadquartersAddress.Country == countryCode
                      ).ToList();

            // Update actual RecordCount in Header
            _leiData.LEIHeader.RecordCount = _leiData.LEIRecords.LEIRecord.Count.ToString();

            // as an Experiment, use different Namespace for this country; append the CountryCode
            XmlSerializerNamespaces ns = new XmlSerializerNamespaces();

            ns.Add("gleif" + countryCode, "http://www.gleif.org/concatenated-file/header-extension/2.0");
            ns.Add("lei" + countryCode, "http://www.gleif.org/data/schema/leidata/2016");

            // Write to file
            Serialization.WriteXml(_leiData, fileName, ns);
        }
コード例 #3
0
ファイル: Serialisation.cs プロジェクト: modusnl/GLEIF
 // serialize LEIData.LEIRecords object directly to CSV file (stream)
 public static void WriteCsv(LEIData leiData, string fileName)
 {
     Console.WriteLine("Writing LEIData to CSV file...");
     using (StreamWriter file = File.CreateText(fileName))
     {
         CsvWriter csv = new CsvWriter(file);
         csv.WriteRecords(leiData.LEIRecords.LEIRecord);
     }
 }
コード例 #4
0
ファイル: Serialisation.cs プロジェクト: modusnl/GLEIF
 // serialize LEIData object directly to JSON file (stream)
 public static void WriteJson(LEIData leiData, string fileName)
 {
     Console.WriteLine("Writing LEIData to JSON file...");
     using (StreamWriter file = File.CreateText(fileName))
     {
         JsonSerializer serializer = new JsonSerializer();
         serializer.Serialize(file, leiData);
     }
 }
コード例 #5
0
        // Write serialized object via MemoryStream to Blob as CSV
        private static void WriteCsv(LEIData leiData, Uri outputUri, CloudBlobClient cloudBlobClient)
        {
            CloudBlockBlob outputBlob = new CloudBlockBlob(outputUri, cloudBlobClient);

            using (var sw = new StreamWriter(outputBlob.OpenWriteAsync().Result))
            {
                CsvWriter csv = new CsvWriter(sw);
                csv.WriteRecords(leiData.LEIRecords.LEIRecord);
            }
        }
コード例 #6
0
        // Write serialized object via MemoryStream to Blob as JSON
        private static void WriteJson(LEIData leiData, Uri outputUri, CloudBlobClient cloudBlobClient)
        {
            CloudBlockBlob outputBlob = new CloudBlockBlob(outputUri, cloudBlobClient);

            using (var sw = new StreamWriter(outputBlob.OpenWriteAsync().Result))
            {
                JsonSerializer serializer = new JsonSerializer();
                serializer.Serialize(sw, leiData);
            }
        }
コード例 #7
0
        // serialize LEIData object straight into XML stream
        private static void WriteXmlStream(LEIData leiData, Stream output, XmlSerializerNamespaces ns = null)
        {
            if (ns == null)
            {
                // explicitly include NameSpaces, to comply with 2017-03-21_lei-cdf-v2-1.pdf | 1.6.1. XML Design Rules
                ns = new XmlSerializerNamespaces();
                ns.Add("gleif", "http://www.gleif.org/concatenated-file/header-extension/2.0");
                ns.Add("lei", "http://www.gleif.org/data/schema/leidata/2016");
            }

            XmlSerializer serializer = new XmlSerializer(typeof(LEIData));

            serializer.Serialize(output, leiData, ns);
        }
コード例 #8
0
ファイル: Serialisation.cs プロジェクト: modusnl/GLEIF
        // serialize LEIData object directly to XML file (stream)
        public static void WriteXml(LEIData leiData, string fileName, XmlSerializerNamespaces ns = null)
        {
            Console.WriteLine("Writing leiData to XML file '{0}'...", fileName);
            using (StreamWriter file = File.CreateText(fileName))
            {
                if (ns == null)
                {
                    // explicitly include NameSpaces, to comply with 2017-03-21_lei-cdf-v2-1.pdf | 1.6.1. XML Design Rules
                    ns = new XmlSerializerNamespaces();
                    ns.Add("gleif", "http://www.gleif.org/concatenated-file/header-extension/2.0");
                    ns.Add("lei", "http://www.gleif.org/data/schema/leidata/2016");
                }

                XmlSerializer serializer = new XmlSerializer(typeof(LEIData));
                serializer.Serialize(file, leiData, ns);
            }
        }
コード例 #9
0
        // filter LEIData object using LINQ expression to TopN records
        private static void WriteXmlTopN(LEIData leiData, string fileName, int count)
        {
            // Inititialize TopN object based on parent object
            LEIData _leiData = new LEIData
            {
                LEIHeader  = leiData.LEIHeader,
                LEIRecords = new LEIRecordsType()
            };

            // Filter top N records, using List<> methods
            _leiData.LEIRecords.LEIRecord =
                leiData.LEIRecords.LEIRecord.Take <LEIRecordType>(count).ToList();

            // Update actual RecordCount in Header
            _leiData.LEIHeader.RecordCount = _leiData.LEIRecords.LEIRecord.Count.ToString();

            Serialization.WriteXml(_leiData, fileName);
        }
コード例 #10
0
        // filter LEIData object using LINQ expression to TopN records
        private static void WriteXmlTopN(LEIData leiData, Uri outputUri, CloudBlobClient cloudBlobClient, int count)
        {
            // Inititialize TopN object based on parent object
            LEIData _leiData = new LEIData
            {
                LEIHeader  = leiData.LEIHeader,
                LEIRecords = new LEIRecordsType()
            };

            // Filter top N records, using List<> methods
            _leiData.LEIRecords.LEIRecord =
                leiData.LEIRecords.LEIRecord.Take <LEIRecordType>(count).ToList();

            // Update actual RecordCount in Header
            _leiData.LEIHeader.RecordCount = _leiData.LEIRecords.LEIRecord.Count.ToString();

            // Write serialized object to Blob
            CloudBlockBlob outputBlob = new CloudBlockBlob(outputUri, cloudBlobClient);

            using (var outputStream = outputBlob.OpenWriteAsync().Result) {
                WriteXmlStream(_leiData, outputStream);
            }
        }