Exemplo n.º 1
0
        private void FileChunkRequestedHandler(object sender, ToxEventArgs.FileRequestChunkEventArgs e)
        {
            if (IsPlaceholder || !IsThisTransfer(e))
            {
                return;
            }

            var chunk = GetNextChunk(e);
            var successfulChunkSend = _toxModel.FileSendChunk(e.FriendNumber, e.FileNumber, e.Position, chunk);

            if (successfulChunkSend)
            {
                if (IsFinished)
                {
                    _fileTransferResumer.RemoveTransfer(_friendNumber, _fileNumber);
                    State = FileTransferState.Finished;
                }
            }
        }
Exemplo n.º 2
0
        private void FileChunkRequestedHandler(object sender, ToxEventArgs.FileRequestChunkEventArgs e)
        {
            var transferId = new TransferId(e.FriendNumber, e.FileNumber);

            if (IsTransferFinished(transferId))
            {
                return;
            }

            var currentTransfer = _transfers[transferId];

            var chunk = currentTransfer.GetNextChunk(e);
            var successfulChunkSend = _toxModel.FileSendChunk(e.FriendNumber, e.FileNumber, e.Position, chunk);

            if (successfulChunkSend)
            {
                if (currentTransfer.IsFinished())
                {
                    HandleFinishedUpload(transferId);
                }
            }
        }