Beispiel #1
0
 protected override void InternalProcessRecord()
 {
     TaskLogger.LogEnter();
     using (FileStream fileStream = new FileStream(this.Path, FileMode.Open, FileAccess.Read))
     {
         using (BinaryReader reader = this.GetReader(fileStream))
         {
             OABFileHeader     oabfileHeader     = OABFileHeader.ReadFrom(reader);
             OABFileProperties oabfileProperties = OABFileProperties.ReadFrom(reader, "Properties");
             PropTag[]         properties        = Array.ConvertAll <OABPropertyDescriptor, PropTag>(oabfileProperties.HeaderProperties, (OABPropertyDescriptor propertyDescriptor) => propertyDescriptor.PropTag);
             OABFileRecord     record            = OABFileRecord.ReadFrom(reader, properties, "AddressListRecord");
             PropTag[]         properties2       = Array.ConvertAll <OABPropertyDescriptor, PropTag>(oabfileProperties.DetailProperties, (OABPropertyDescriptor propertyDescriptor) => propertyDescriptor.PropTag);
             if (this.Metadata)
             {
                 GetOABFile.FileMetadata fileMetadata = new GetOABFile.FileMetadata();
                 fileMetadata.Version               = oabfileHeader.Version;
                 fileMetadata.RecordCount           = oabfileHeader.RecordCount;
                 fileMetadata.CRC                   = oabfileHeader.CRC;
                 fileMetadata.AddressListProperties = Array.ConvertAll <OABPropertyDescriptor, GetOABFile.PropertyDescriptor>(oabfileProperties.HeaderProperties, (OABPropertyDescriptor propertyDescriptor) => new GetOABFile.PropertyDescriptor(propertyDescriptor));
                 fileMetadata.RecordProperties      = Array.ConvertAll <OABPropertyDescriptor, GetOABFile.PropertyDescriptor>(oabfileProperties.DetailProperties, (OABPropertyDescriptor propertyDescriptor) => new GetOABFile.PropertyDescriptor(propertyDescriptor));
                 fileMetadata.AddressList           = new GetOABFile.Record(record);
                 GetOABFile.FileMetadata sendToPipeline = fileMetadata;
                 base.WriteObject(sendToPipeline);
             }
             if (this.Data)
             {
                 for (int i = 0; i < oabfileHeader.RecordCount; i++)
                 {
                     OABFileRecord record2 = OABFileRecord.ReadFrom(reader, properties2, "Record[" + i + "]");
                     base.WriteObject(new GetOABFile.Record(record2));
                 }
             }
         }
     }
     TaskLogger.LogExit();
 }