void _rebuilderService_TransferCompleted(object sender, FileTransferCompletedEventArgs e)
 {
     if (FileTransferCompleted != null)
     {
         FileTransferCompleted(sender, e);
     }
 }
Example #2
0
 void ClientService_FileTransferCompleted(object sender, FileTransferCompletedEventArgs e)
 {
     if (FileTransferCompleted != null)
     {
         FileTransferCompleted(sender, e);
     }
 }
 void client_FileTransferCompleted(object sender, FileTransferCompletedEventArgs e)
 {
     if (_fileTransferCompletedCallback != null)
     {
         _fileTransferCompletedCallback(e);
     }
 }
        private bool WriteChunkToFile(FileChunkMessage chunk)
        {
            if (_host == null) throw new InvalidOperationException("Service not started");

            if (chunk.IsStartChunk)
            {
                PrepareForTransfer(chunk.Header.Hash);
            }

            if (!_fileBuilders.ContainsKey(chunk.Header.Hash))
            {
                return false;
            }

            FileRebuilder builder = _fileBuilders[chunk.Header.Hash];

            builder.ReceiveChunk(chunk);

            if (chunk.IsEndChunk && TransferCompleted != null)
            {
                FileTransferCompletedEventArgs args = new FileTransferCompletedEventArgs(chunk.Header.Hash, builder.FileName);

                //Close so subscribers can move file
                _fileBuilders[chunk.Header.Hash].Close();

                TransferCompleted(this, args);

                _fileBuilders[chunk.Header.Hash].Dispose();
                _fileBuilders.Remove(chunk.Header.Hash);
            }
            else
            {
                if (NextChunkRequested != null)
                {
                    FileRequestEventArgs args = new FileRequestEventArgs(null);
                    args.Hash = chunk.Header.Hash;
                    args.ChunkIndex = chunk.ChunkIndex + 1;

                    NextChunkRequested(this, args);
                }
            }

            return true;
        }