Ejemplo n.º 1
0
		public override async Task WriteResponseBodyAsync(OutputFormatterWriteContext context)
		{
			var response = context.HttpContext.Response;
			//var selectedEncoding = context.ContentType.Encoding == null ? Encoding.UTF8 : context.ContentType.Encoding;
			var selectedEncoding = Encoding.UTF8;

			var value = context.Object;
			if (value is IEdmModel || context.HttpContext.ODataProperties().Model == null)
			{
				using (var delegatingStream = new NonDisposableStream(response.Body))
				using (var writer = new StreamWriter(delegatingStream, selectedEncoding, 1024, leaveOpen: true))
				{
					if (value is IEdmModel)
					{
						WriteMetadata(writer, (IEdmModel)value);
					}

					using (var jsonWriter = CreateJsonWriter(writer))
					{
						var jsonSerializer = CreateJsonSerializer();
						jsonSerializer.Serialize(jsonWriter, value);
					}
				}
			}
			else
			{
				using (var delegatingStream = new NonDisposableStream(response.Body))
				{
					await WriteObjectAsync(delegatingStream, context);
				}
			}
		}
        public void InnerStreamIsNotFlushedOnDispose()
        {
            var stream = FlushReportingStream.GetThrowingStream();
            var nonDisposableStream = new NonDisposableStream(stream);

            // Act & Assert
            nonDisposableStream.Dispose();
        }
Ejemplo n.º 3
0
        public void InnerStreamIsNotFlushedOnDispose()
        {
            var stream = FlushReportingStream.GetThrowingStream();
            var nonDisposableStream = new NonDisposableStream(stream);

            // Act & Assert
            nonDisposableStream.Dispose();
        }
        public async Task InnerStreamIsNotFlushedOnFlushAsync()
        {
            // Arrange
            var stream = FlushReportingStream.GetThrowingStream();

            var nonDisposableStream = new NonDisposableStream(stream);

            // Act & Assert
            await nonDisposableStream.FlushAsync();
        }
Ejemplo n.º 5
0
        public async Task InnerStreamIsNotFlushedOnFlushAsync()
        {
            // Arrange
            var stream = FlushReportingStream.GetThrowingStream();

            var nonDisposableStream = new NonDisposableStream(stream);

            // Act & Assert
            await nonDisposableStream.FlushAsync();
        }
        public void InnerStreamIsOpenOnDispose()
        {
            // Arrange
            var innerStream         = new MemoryStream();
            var nonDisposableStream = new NonDisposableStream(innerStream);

            // Act
            nonDisposableStream.Dispose();

            // Assert
            Assert.True(innerStream.CanRead);
        }
Ejemplo n.º 7
0
        public void InnerStreamIsOpenOnDispose()
        {
            // Arrange
            var innerStream = new MemoryStream();
            var nonDisposableStream = new NonDisposableStream(innerStream);

            // Act
            nonDisposableStream.Dispose();

            // Assert
            Assert.True(innerStream.CanRead);
        }