예제 #1
0
        /// <summary>
        ///     Constructs and returns resume data (based on metadata) necessary for a transfer to resume it.
        /// </summary>
        /// <param name="token">The token of the record in the future access list.</param>
        /// <param name="metadata">The metadata of the transfer to get the resume data for.</param>
        /// <returns>The resume data.</returns>
        private async Task <ResumeData> GetResumeData(string token, TransferMetadata metadata)
        {
            try
            {
                var file = await _futureAccesList.GetFileAsync(token);

                _futureAccesList.Remove(token);

                var resumeData = new ResumeData
                {
                    FriendNumber     = metadata.FriendNumber,
                    File             = file,
                    FileId           = metadata.FileId,
                    TransferredBytes = metadata.TransferredBytes
                };
                return(resumeData);
            }
            catch (FileNotFoundException)
            {
                // If we don't find the file anymore, we really don't need to keep record of it.
                _futureAccesList.Remove(token);
            }
            return(null);
        }
예제 #2
0
        /// <summary>
        ///     Constructs and returns resume data (based on metadata) necessary for a transfer to resume it.
        /// </summary>
        /// <param name="token">The token of the record in the future access list.</param>
        /// <param name="metadata">The metadata of the transfer to get the resume data for.</param>
        /// <returns>The resume data.</returns>
        private async Task<ResumeData> GetResumeData(string token, TransferMetadata metadata)
        {
            try
            {
                var file = await _futureAccesList.GetFileAsync(token);
                _futureAccesList.Remove(token);

                var resumeData = new ResumeData
                {
                    FriendNumber = metadata.FriendNumber,
                    File = file,
                    FileId = metadata.FileId,
                    TransferredBytes = metadata.TransferredBytes
                };
                return resumeData;
            }
            catch (FileNotFoundException)
            {
                // If we don't find the file anymore, we really don't need to keep record of it.
                _futureAccesList.Remove(token);
            }
            return null;
        }