public List <Frame> DetermineFrames(ConnegRules rules, JasperGenerationRules codeRules) { if (_hasDeterminedFrames) { throw new InvalidOperationException("Has already determined frames"); } _hasDeterminedFrames = true; if (!_hasAppliedConfigureAndAttributes) { rules.Apply(this); _hasAppliedConfigureAndAttributes = true; applyAttributesAndConfigureMethods(codeRules); } var list = Middleware.ToList(); list.AddRange(Route.Segments.OfType <IRoutingFrameSource>().Select(x => x.ToParsingFrame(Action))); list.Add(Action); list.AddRange(Postprocessors); return(list); }
public void will_apply_generic_chain_attributes() { var chain = chainFor(x => x.post_select_name(null)); var frames = chain.DetermineFrames(ConnegRules.Empty()); chain.Middleware.Any(x => x is FakeMiddleware1).ShouldBeTrue(); chain.Middleware.Any(x => x is FakeMiddleware2).ShouldBeTrue(); }
public void applies_attributes_against_the_IChain() { var chain = RouteChain.For <ConfiguredEndpoint>(x => x.get_wrapper3()); var frames = chain.DetermineFrames(ConnegRules.Empty()); frames.OfType <FakeWrapper3>().Any().ShouldBeTrue(); }
public void applies_the_Configure_IChain_method() { var chain = RouteChain.For <ConfiguredEndpoint>(x => x.get_configured()); var frames = chain.DetermineFrames(ConnegRules.Empty()); frames.OfType <FakeWrapper>().Any().ShouldBeTrue(); }
public void applies_the_Configure_RoutedChain_method() { var chain = RouteChain.For <ConfiguredEndpoint>(x => x.get_configured()); var frames = chain.DetermineFrames(ConnegRules.Empty(), JasperGenerationRules.Empty()); frames.OfType <FakeTransaction>().Any().ShouldBeTrue(); }
public void BuildRoutingTree(ConnegRules rules, JasperGenerationRules generation, JasperRuntime runtime) { Router.HandlerBuilder = new RouteHandlerBuilder(runtime.Container, rules, generation); assertNoDuplicateRoutes(); foreach (var route in _chains.Select(x => x.Route)) { Router.Add(route); } }
public void AssemblyType(GeneratedAssembly generatedAssembly, ConnegRules rules) { _generatedType = generatedAssembly.AddType(TypeName, typeof(RouteHandler)); var handleMethod = _generatedType.MethodFor(nameof(RouteHandler.Handle)); handleMethod.Frames.AddRange(DetermineFrames(rules)); handleMethod.Sources.Add(new ContextVariableSource()); handleMethod.DerivedVariables.AddRange(HttpContextVariables); }
public void BuildRoutingTree(ConnegRules rules, GenerationRules generation, JasperRuntime runtime) { assertNoDuplicateRoutes(); foreach (var chain in _chains) { rules.Apply(chain); } var handlers = CompileAndBuildAll(generation, runtime.Get); foreach (var handler in handlers) { var route = handler.Chain.Route; route.Handler = handler; Router.Add(route); } }
public List <Frame> DetermineFrames(ConnegRules rules) { if (!_hasAppliedConfigureAndAttributes) { rules.Apply(this); _hasAppliedConfigureAndAttributes = true; applyAttributesAndConfigureMethods(); } var list = Middleware.ToList(); list.AddRange(Route.Segments.OfType <IRoutingFrameSource>().Select(x => x.ToParsingFrame(Action))); list.Add(Action); list.AddRange(Postprocessors); return(list); }
public List <Frame> DetermineFrames(ConnegRules rules, GenerationRules codeRules, IContainer container) { if (_hasDeterminedFrames) { throw new InvalidOperationException("Has already determined frames"); } _hasDeterminedFrames = true; if (!_hasAppliedConfigureAndAttributes) { rules.Apply(this); _hasAppliedConfigureAndAttributes = true; applyAttributesAndConfigureMethods(codeRules, container); } var list = Middleware.ToList(); var arguments = Route.Segments.OfType <IRoutingFrameSource>(); foreach (var argument in arguments) { if (Action.Method.Name == "Put" && Action.HandlerType.Name == "ValuesController") { Debug.Assert(true); } var frame = argument.ToParsingFrame(Action); list.Add(frame); } list.Add(Action); list.AddRange(Postprocessors); return(list); }
public RouteHandlerBuilder(IContainer container, ConnegRules rules, GenerationRules generation) { _container = container; _rules = rules; _generation = generation; }