Skip to content
This repository was archived by the owner on Nov 20, 2018. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions src/Microsoft.AspNet.Abstractions/IBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@ namespace Microsoft.AspNet.Abstractions
{
public interface IBuilder
{
IServiceProvider ServiceProvider { get; set; }

IBuilder Use(Func<RequestDelegate, RequestDelegate> middleware);
IBuilder Run(RequestDelegate handler);

IBuilder New();
RequestDelegate Build();

object GetItem(Type type);
void SetItem(Type type, object feature);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public static class AppBuilderSupportExtensions
{
public static IAppBuilder UseBuilder(this IAppBuilder appBuilder, Action<IBuilder> configuration)
{
IBuilder builder = new Builder();
IBuilder builder = new Builder(null);
configuration(builder);
Func<AppFunc,AppFunc> middleware1 = next1 => {
Func<RequestDelegate,RequestDelegate> middleware2 = next2 => {
Expand Down
44 changes: 4 additions & 40 deletions src/Microsoft.AspNet.PipelineCore/Builder.cs
Original file line number Diff line number Diff line change
@@ -1,56 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNet.Abstractions;
using Microsoft.AspNet.FeatureModel;

namespace Microsoft.AspNet.PipelineCore
{
public class Builder : IBuilder
{
private readonly IFeatureCollection _interfaces;
private readonly IDictionary<string, object> _properties;
private readonly IList<Func<RequestDelegate, RequestDelegate>> _components = new List<Func<RequestDelegate, RequestDelegate>>();

public Builder()
public Builder(IServiceProvider serviceProvider)
{
_interfaces = new FeatureCollection();
_properties = new Dictionary<string, object>();
ServiceProvider = serviceProvider;
}

public Builder(IFeatureCollection interfaces, IDictionary<string, object> properties)
{
_interfaces = interfaces;
_properties = properties;
}

public void Dispose()
{
_interfaces.Dispose();
}

public virtual object GetItem(Type key)
{
object value;
return _interfaces.TryGetValue(key, out value);
}

public virtual void SetItem(Type key, object value)
{
_interfaces[key] = value;
}

public virtual object GetItem(string key)
{
object value;
return _properties.TryGetValue(key, out value);
}

public virtual void SetItem(string key, object value)
{
_properties[key] = value;
}
public IServiceProvider ServiceProvider { get; set; }

public IBuilder Use(Func<RequestDelegate, RequestDelegate> middleware)
{
Expand All @@ -65,7 +29,7 @@ public IBuilder Run(RequestDelegate handler)

public IBuilder New()
{
return new Builder(_interfaces, _properties);
return new Builder(ServiceProvider);
}

public RequestDelegate Build()
Expand Down
2 changes: 1 addition & 1 deletion test/Microsoft.AspNet.PipelineCore.Tests/BuilderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public class BuilderTests
[Fact]
public void BuildReturnsCallableDelegate()
{
var builder = new Builder();
var builder = new Builder(null);
var app = builder.Build();

var mockHttpContext = new Moq.Mock<HttpContext>();
Expand Down