Exemplo n.º 1
0
        public void WriteHeaderValue(DateTime value)
        {
            this.AssertOpen();
            if (this.headerValueWritten)
            {
                throw new InvalidOperationException(Strings.CannotWriteHeaderValueMoreThanOnce);
            }
            if (this.lastHeader == null)
            {
                throw new InvalidOperationException(Strings.CannotWriteHeaderValueHere);
            }
            this.headerValueWritten = true;
            TimeSpan timeZoneOffset = TimeSpan.Zero;
            DateTime utcDateTime    = value.ToUniversalTime();

            if (value.Kind != DateTimeKind.Utc)
            {
                timeZoneOffset = TimeZoneInfo.Local.GetUtcOffset(value);
            }
            Header.WriteName(this.shimStream, this.lastHeader.Name, ref this.scratchBuffer);
            MimeStringLength mimeStringLength = new MimeStringLength(0);

            DateHeader.WriteDateHeaderValue(this.shimStream, utcDateTime, timeZoneOffset, ref mimeStringLength);
            this.lastHeader = null;
        }
Exemplo n.º 2
0
        internal override long WriteTo(Stream stream, EncodingOptions encodingOptions, MimeOutputFilter filter, ref MimeStringLength currentLineLength, ref byte[] scratchBuffer)
        {
            long num = base.WriteName(stream, ref scratchBuffer);

            currentLineLength.IncrementBy((int)num);
            if (!base.IsDirty && base.RawLength != 0 && base.IsProtected)
            {
                long num2 = Header.WriteLines(base.Lines, stream);
                num += num2;
                currentLineLength.SetAs(0);
                return(num);
            }
            if (!this.parsed)
            {
                this.Parse();
            }
            num += DateHeader.WriteDateHeaderValue(stream, this.utcDateTime, this.timeZoneOffset, ref currentLineLength);
            currentLineLength.SetAs(0);
            return(num);
        }