Пример #1
0
        internal static List <BlobRecipient> ReadRecipients(ExTimeZone timeZone, Stream stream)
        {
            List <BlobRecipient> list = new List <BlobRecipient>();

            try
            {
                BinaryReader binaryReader = new BinaryReader(stream);
                uint         num          = binaryReader.ReadUInt32();
                if (num == 1U)
                {
                    uint num2 = binaryReader.ReadUInt32();
                    for (uint num3 = 0U; num3 < num2; num3 += 1U)
                    {
                        BlobRecipient blobRecipient = BlobRecipientParser.ReadRecipient(timeZone, binaryReader);
                        if (blobRecipient == null || blobRecipient.Participant == null)
                        {
                            ExTraceGlobals.StorageTracer.TraceError(0L, "BlobRecipientParser::ReadRecipients. Failed to read a recipient. Skip rest of blob.");
                            break;
                        }
                        list.Add(blobRecipient);
                    }
                }
            }
            catch (EndOfStreamException)
            {
                ExTraceGlobals.StorageTracer.TraceError(0L, "BlobRecipientParser::ReadRecipients. EndOfStream.");
            }
            return(list);
        }