Beispiel #1
0
        internal Stream GetContentStream()
        {
            MimeWriterState mimeWriterState = this.state;

            if (mimeWriterState != MimeWriterState.Start)
            {
                switch (mimeWriterState)
                {
                case MimeWriterState.Content:
                case MimeWriterState.Closed:
                    break;

                default:
                    this.state = MimeWriterState.Content;
                    this.bufferedWrite.Write(MimeGlobals.CRLF);
                    this.Flush();
                    this.contentStream = this.stream;
                    return(this.contentStream);
                }
            }
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString("MimeWriterInvalidStateForContent", new object[]
            {
                this.state.ToString()
            })));
        }
Beispiel #2
0
        internal void StartPreface()
        {
            if (state != MimeWriterState.Start)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.MimeWriterInvalidStateForStartPreface, state.ToString())));

            state = MimeWriterState.StartPreface;
        }
Beispiel #3
0
        internal void WriteHeader(string name, string value)
        {
            if (name == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("name");
            }
            if (value == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("value");
            }
            MimeWriterState mimeWriterState = this.state;

            if (mimeWriterState != MimeWriterState.Start)
            {
                switch (mimeWriterState)
                {
                case MimeWriterState.Content:
                case MimeWriterState.Closed:
                    break;

                default:
                    this.state = MimeWriterState.Header;
                    this.bufferedWrite.Write(name);
                    this.bufferedWrite.Write(MimeGlobals.COLONSPACE);
                    this.bufferedWrite.Write(value);
                    this.bufferedWrite.Write(MimeGlobals.CRLF);
                    return;
                }
            }
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString("MimeWriterInvalidStateForHeader", new object[]
            {
                this.state.ToString()
            })));
        }
Beispiel #4
0
 internal void StartPreface()
 {
     if (this.state != MimeWriterState.Start)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.Runtime.Serialization.SR.GetString("MimeWriterInvalidStateForStartPreface", new object[] { this.state.ToString() })));
     }
     this.state = MimeWriterState.StartPreface;
 }
Beispiel #5
0
        internal MimeWriter(Stream stream, string boundary)
        {
            if (stream == null)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("stream");
            if (boundary == null)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("boundary");

            this.stream = stream;
            this.boundaryBytes = MimeWriter.GetBoundaryBytes(boundary);
            this.state = MimeWriterState.Start;
            this.bufferedWrite = new BufferedWrite();
        }
 internal Stream GetContentStream()
 {
     switch (this.state)
     {
         case MimeWriterState.Content:
         case MimeWriterState.Closed:
         case MimeWriterState.Start:
             throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.Runtime.Serialization.SR.GetString("MimeWriterInvalidStateForContent", new object[] { this.state.ToString() })));
     }
     this.state = MimeWriterState.Content;
     this.bufferedWrite.Write(MimeGlobals.CRLF);
     this.Flush();
     this.contentStream = this.stream;
     return this.contentStream;
 }
 internal MimeWriter(Stream stream, string boundary)
 {
     if (stream == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("stream");
     }
     if (boundary == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("boundary");
     }
     this.stream = stream;
     this.boundaryBytes = GetBoundaryBytes(boundary);
     this.state = MimeWriterState.Start;
     this.bufferedWrite = new BufferedWrite();
 }
 internal void Close()
 {
     if (this.state == MimeWriterState.Closed)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.Runtime.Serialization.SR.GetString("MimeWriterInvalidStateForClose", new object[] { this.state.ToString() })));
     }
     this.state = MimeWriterState.Closed;
     if (this.contentStream != null)
     {
         this.contentStream.Flush();
         this.contentStream = null;
     }
     this.bufferedWrite.Write(this.boundaryBytes);
     this.bufferedWrite.Write(MimeGlobals.DASHDASH);
     this.bufferedWrite.Write(MimeGlobals.CRLF);
     this.Flush();
 }
Beispiel #9
0
 internal void Close()
 {
     if (this.state == MimeWriterState.Closed)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.Runtime.Serialization.SR.GetString("MimeWriterInvalidStateForClose", new object[] { this.state.ToString() })));
     }
     this.state = MimeWriterState.Closed;
     if (this.contentStream != null)
     {
         this.contentStream.Flush();
         this.contentStream = null;
     }
     this.bufferedWrite.Write(this.boundaryBytes);
     this.bufferedWrite.Write(MimeGlobals.DASHDASH);
     this.bufferedWrite.Write(MimeGlobals.CRLF);
     this.Flush();
 }
Beispiel #10
0
        internal void StartPart()
        {
            MimeWriterState mimeWriterState = this.state;

            if (mimeWriterState == MimeWriterState.StartPart || mimeWriterState == MimeWriterState.Closed)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString("MimeWriterInvalidStateForStartPart", new object[]
                {
                    this.state.ToString()
                })));
            }
            this.state = MimeWriterState.StartPart;
            if (this.contentStream != null)
            {
                this.contentStream.Flush();
                this.contentStream = null;
            }
            this.bufferedWrite.Write(this.boundaryBytes);
            this.bufferedWrite.Write(MimeGlobals.CRLF);
        }
Beispiel #11
0
        internal Stream GetContentStream()
        {
            switch (state)
            {
                case MimeWriterState.Start:
                case MimeWriterState.Content:
                case MimeWriterState.Closed:
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.MimeWriterInvalidStateForContent, state.ToString())));
                default:
                    break;
            }

            state = MimeWriterState.Content;

            bufferedWrite.Write(MimeGlobals.CRLF);

            Flush();

            contentStream = stream;

            return contentStream;
        }
Beispiel #12
0
        internal void StartPart()
        {
            switch (state)
            {
                case MimeWriterState.StartPart:
                case MimeWriterState.Closed:
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.MimeWriterInvalidStateForStartPart, state.ToString())));
                default:
                    break;
            }

            state = MimeWriterState.StartPart;

            if (contentStream != null)
            {
                contentStream.Flush();
                contentStream = null;
            }

            bufferedWrite.Write(boundaryBytes);
            bufferedWrite.Write(MimeGlobals.CRLF);
        }
Beispiel #13
0
        internal void WriteHeader(string name, string value)
        {
            if (name == null)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("name");
            if (value == null)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("value");

            switch (state)
            {
                case MimeWriterState.Start:
                case MimeWriterState.Content:
                case MimeWriterState.Closed:
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.MimeWriterInvalidStateForHeader, state.ToString())));
                default:
                    break;
            }

            state = MimeWriterState.Header;

            bufferedWrite.Write(name);
            bufferedWrite.Write(MimeGlobals.COLONSPACE);
            bufferedWrite.Write(value);
            bufferedWrite.Write(MimeGlobals.CRLF);
        }
 internal void WriteHeader(string name, string value)
 {
     if (name == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("name");
     }
     if (value == null)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("value");
     }
     switch (this.state)
     {
         case MimeWriterState.Content:
         case MimeWriterState.Closed:
         case MimeWriterState.Start:
             throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.Runtime.Serialization.SR.GetString("MimeWriterInvalidStateForHeader", new object[] { this.state.ToString() })));
     }
     this.state = MimeWriterState.Header;
     this.bufferedWrite.Write(name);
     this.bufferedWrite.Write(MimeGlobals.COLONSPACE);
     this.bufferedWrite.Write(value);
     this.bufferedWrite.Write(MimeGlobals.CRLF);
 }
 internal void StartPreface()
 {
     if (this.state != MimeWriterState.Start)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.Runtime.Serialization.SR.GetString("MimeWriterInvalidStateForStartPreface", new object[] { this.state.ToString() })));
     }
     this.state = MimeWriterState.StartPreface;
 }
        internal void Close()
        {
            switch (state)
            {
                case MimeWriterState.Closed:
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.MimeWriterInvalidStateForClose, state.ToString())));
                default:
                    break;
            }

            state = MimeWriterState.Closed;

            if (contentStream != null)
            {
                contentStream.Flush();
                contentStream = null;
            }

            bufferedWrite.Write(boundaryBytes);
            bufferedWrite.Write(MimeGlobals.DASHDASH);
            bufferedWrite.Write(MimeGlobals.CRLF);

            Flush();
        }