diff --git a/samples/MvcSample/MvcSample.k10.csproj b/samples/MvcSample/MvcSample.k10.csproj index 2389b3f372..cc43716477 100644 --- a/samples/MvcSample/MvcSample.k10.csproj +++ b/samples/MvcSample/MvcSample.k10.csproj @@ -35,6 +35,7 @@ + @@ -51,6 +52,10 @@ False ..\..\packages\Microsoft.AspNet.Abstractions.0.1-alpha-t140125104446\lib\k10\Microsoft.AspNet.Abstractions.dll + + False + ..\..\packages\Microsoft.AspNet.DependencyInjection.0.1-alpha-t140125113429\lib\k10\Microsoft.AspNet.DependencyInjection.dll + diff --git a/samples/MvcSample/MvcSample.net45.csproj b/samples/MvcSample/MvcSample.net45.csproj index b154aa22e9..a5dbd5d11a 100644 --- a/samples/MvcSample/MvcSample.net45.csproj +++ b/samples/MvcSample/MvcSample.net45.csproj @@ -38,6 +38,18 @@ + + False + ..\..\packages\Owin.1.0\lib\net40\Owin.dll + + + False + ..\..\packages\Microsoft.Owin.2.1.0\lib\net45\Microsoft.Owin.dll + + + False + ..\..\packages\Microsoft.Owin.Diagnostics.2.1.0\lib\net40\Microsoft.Owin.Diagnostics.dll + False ..\..\packages\Microsoft.AspNet.FileSystems.0.1-alpha-t140125101521\lib\net45\Microsoft.AspNet.FileSystems.dll @@ -46,10 +58,15 @@ False ..\..\packages\Microsoft.AspNet.Abstractions.0.1-alpha-t140125104446\lib\net45\Microsoft.AspNet.Abstractions.dll + + False + ..\..\packages\Microsoft.AspNet.DependencyInjection.0.1-alpha-t140125113429\lib\net45\Microsoft.AspNet.DependencyInjection.dll + + diff --git a/samples/MvcSample/OwinHttpContext.cs b/samples/MvcSample/OwinHttpContext.cs new file mode 100644 index 0000000000..c7a0d83c05 --- /dev/null +++ b/samples/MvcSample/OwinHttpContext.cs @@ -0,0 +1,177 @@ +#if NET45 +using System; +using System.IO; +using System.Threading.Tasks; +using Microsoft.AspNet.Abstractions; +using Microsoft.Owin; + +namespace MvcSample +{ + public class OwinHttpContext : HttpContext + { + private readonly IOwinContext _context; + private readonly HttpRequest _request; + private readonly HttpResponse _response; + + public OwinHttpContext(IOwinContext context) + { + _context = context; + _request = new OwinHttpRequest(this, context.Request); + _response = new OwinHttpResponse(this, context.Response); + } + + public override void Dispose() + { + + } + + public override object GetInterface(Type type) + { + return null; + } + + public override HttpRequest Request + { + get { return _request; } + } + + public override HttpResponse Response + { + get { return _response; } + } + + public override void SetInterface(Type type, object instance) + { + + } + + private class OwinHttpRequest : HttpRequest + { + private HttpContext _context; + private IOwinRequest _request; + + public OwinHttpRequest(HttpContext context, IOwinRequest request) + { + _context = context; + _request = request; + } + + public override Stream Body + { + get + { + return _request.Body; + } + set + { + _request.Body = value; + } + } + + public override HttpContext HttpContext + { + get { return _context; } + } + + public override Microsoft.AspNet.Abstractions.PathString Path + { + get + { + return new Microsoft.AspNet.Abstractions.PathString(_request.Path.Value); + } + set + { + _request.Path = new Microsoft.Owin.PathString(value.Value); + } + } + + public override Microsoft.AspNet.Abstractions.PathString PathBase + { + get + { + return new Microsoft.AspNet.Abstractions.PathString(_request.PathBase.Value); + } + set + { + _request.PathBase = new Microsoft.Owin.PathString(value.Value); + } + } + + public override Microsoft.AspNet.Abstractions.QueryString QueryString + { + get + { + return new Microsoft.AspNet.Abstractions.QueryString(_request.QueryString.Value); + } + set + { + _request.QueryString = new Microsoft.Owin.QueryString(value.Value); + } + } + + public override Uri Uri + { + get { return _request.Uri; } + } + } + + private class OwinHttpResponse : HttpResponse + { + private readonly HttpContext _context; + private readonly IOwinResponse _response; + + public OwinHttpResponse(HttpContext context, IOwinResponse response) + { + _context = context; + _response = response; + } + + public override Stream Body + { + get + { + return _response.Body; + } + set + { + _response.Body = value; + } + } + + public override string ContentType + { + get + { + return _response.ContentType; + } + set + { + _response.ContentType = value; + } + } + + public override HttpContext HttpContext + { + get { return _context; } + } + + public override int StatusCode + { + get + { + return _response.StatusCode; + } + set + { + _response.StatusCode = value; + } + } + + public override Task WriteAsync(string data) + { + return _response.WriteAsync(data); + } + } + } +} +#endif \ No newline at end of file diff --git a/samples/MvcSample/Startup.cs b/samples/MvcSample/Startup.cs index 9696a04544..0aeccc16d8 100644 --- a/samples/MvcSample/Startup.cs +++ b/samples/MvcSample/Startup.cs @@ -1,4 +1,4 @@ -#if OWIN +#if NET45 using System; using System.Threading.Tasks; using Microsoft.AspNet.Mvc; @@ -32,10 +32,12 @@ namespace MvcSample app.Run(async context => { - // Pretending to be routing - var routeData = new FakeRouteData(context); + var httpContext = new OwinHttpContext(context); - await handler.ExecuteAsync(context, routeData); + // Pretending to be routing + var routeData = new FakeRouteData(httpContext); + + await handler.ExecuteAsync(httpContext, routeData); }); } } diff --git a/samples/MvcSample/project.json b/samples/MvcSample/project.json index 6cd2088e65..71fad68d5b 100644 --- a/samples/MvcSample/project.json +++ b/samples/MvcSample/project.json @@ -1,8 +1,12 @@ { "version" : "0.1-alpha-*", "dependencies": { + "Owin": "1.0", + "Microsoft.Owin": "2.1.0", + "Microsoft.Owin.Diagnostics": "2.1.0", "Microsoft.AspNet.FileSystems": "0.1-alpha-*", "Microsoft.AspNet.Abstractions": "0.1-alpha-*", + "Microsoft.AspNet.DependencyInjection" : "0.1-alpha-*", "Microsoft.AspNet.Mvc" : "", "Microsoft.AspNet.Mvc.Razor" : "" },