Пример #1
0
        /// <summary>
        /// Populates the specified metadata.
        /// </summary>
        /// <param name="metadata">The metadata.</param>
        private void Populate(TransferFolderMetadata metadata)
        {
            this.TotalFileLength = metadata.TotalFileBytes;
            this.TotalFileCount  = metadata.FileCount;
            _fileProgress        = new List <TransferProgress>(this.TotalFileCount);
            _progressBacklog     = new ConcurrentQueue <TransferProgress>();

            foreach (var fileMetadata in metadata.Files)
            {
                var toAdd = new TransferProgress(fileMetadata);
                if (fileMetadata.Status == SegmentTransferStatus.Complete)
                {
                    this.TransferredByteCount += fileMetadata.FileLength;
                    this.TransferredFileCount++;
                    toAdd.TransferredByteCount = toAdd.TotalFileLength;
                    foreach (var segment in toAdd._segmentProgress)
                    {
                        segment.TransferredByteCount = segment.Length;
                    }
                }

                _fileProgress.Add(toAdd);
            }
        }
Пример #2
0
 internal void SetSegmentProgress(TransferProgress segmentProgress)
 {
     _progressBacklog.Enqueue(segmentProgress);
 }