System.Net.WebClient.UploadBitsState.WriteBytes C# (CSharp) Method

WriteBytes() private method

private WriteBytes ( ) : bool
return bool
            internal bool WriteBytes() {
                byte [] bytesToWrite = null;
                int bytesToWriteLength = 0;

                if (Async) {
                    WebClient.PostProgressChanged(AsyncOp, Progress);
                }

                if (FileUpload) {
                    int bytesRead = 0;
                    if (InnerBuffer != null) {
                        bytesRead = ReadStream.Read(InnerBuffer, 0, (int)InnerBuffer.Length);
                        if (bytesRead <= 0) {
                            ReadStream.Close();
                            InnerBuffer = null;
                        }
                    }
                    if (InnerBuffer != null) {
                        bytesToWriteLength = bytesRead;
                        bytesToWrite = InnerBuffer;
                    } else if (Footer != null) {
                        bytesToWriteLength = Footer.Length;
                        bytesToWrite = Footer;
                        Footer = null;
                    } else {
                        return true; // completed
                    }
                } else if (InnerBuffer != null) {
                    bytesToWriteLength = InnerBuffer.Length;
                    bytesToWrite = InnerBuffer;
                    InnerBuffer = null;
                }
                else {
                    return true; // completed
                }

                if (Async) {
                    Progress.BytesSent += bytesToWriteLength;
                    WriteStream.BeginWrite(bytesToWrite, 0, bytesToWriteLength, new AsyncCallback(UploadBitsWriteCallback), this);
                } else {
                    WriteStream.Write(bytesToWrite, 0, bytesToWriteLength);
                }

                return false; // not complete
            }