예제 #1
0
        private void PopulateMessageFrame(Frame messageJsonFrame)
        {
            byte[] payload = messageJsonFrame.Payload;
            GetChunkedFileResponseMessage getChunkedFileResponseMessage = JsonMessageSerializer.Instance.DeSerialize <GetChunkedFileResponseMessage>(new MemoryStream(payload));

            StreamSignature[] Signatures = getChunkedFileResponseMessage.Signatures;
            foreach (var Signature in Signatures)
            {
                string           streamId        = Signature.StreamId;
                ChunkSignature[] chunkSignatures = Signature.ChunkSignatures;
                this.ChunkingSchemePerStreamId[streamId] = Signature.ChunkingScheme;

                if (this.HostBlobIdsPerStreamId.ContainsKey(streamId))
                {
                    continue;
                }

                this.HostBlobIdsPerStreamId[streamId] = new List <string>();

                foreach (var chunkSignature in chunkSignatures)
                {
                    string chunkId = chunkSignature.ChunkId;
                    this.HostBlobIdsPerStreamId[streamId].Add(chunkId);
                }
            }

            // Populate content properties
            if (getChunkedFileResponseMessage.ContentProperties != null)
            {
                foreach (var contentProperty in getChunkedFileResponseMessage.ContentProperties)
                {
                    this.ContentProperties[contentProperty.Name] = contentProperty;
                }
            }
        }