public void Configure(BehaviorGraph graph)
 {
     graph.Actions()
         .Where(x => x.InputType().CanBeCastTo<JsonMessage>())
         .ToList()
         .Each(x => x.ParentChain().MakeAsymmetricJson());
 }
 public void Configure(BehaviorGraph graph)
 {
     graph.Behaviors.Where(x => x.ResourceType() != null).Each(chain =>
     {
         chain.ResourceType().ForAttribute<CacheAttribute>(att => att.Alter(chain));
     });
 }
 public void Configure(BehaviorGraph graph)
 {
     graph
         .Actions()
         .Where(action => action.IsCrudAction())
         .Each(action => action.AddBefore(new CrudValidationBehaviorNode(action.InputType())));
 }
示例#4
0
 public BehaviorGraphWriter(BehaviorGraph graph, IUrlRegistry urls, IServiceLocator services)
 {
     _graph = graph;
     _urls = urls;
     _services = services;
     _diagnosticsNamespace = GetType().Namespace;
 }
 public void SetUp()
 {
     graph = new FubuRegistry(x =>
     {
         x.Actions.IncludeTypesNamed(o => o.EndsWith("Controller"));
     }).BuildGraph();
 }
示例#6
0
        public static ConnegGraph Build(BehaviorGraph behaviorGraph)
        {
            var graph = new ConnegGraph();

            TypePool typePool = behaviorGraph.Types();
            var writers = typePool
                .TypesMatching(
                    x =>
                        x.Closes(typeof (IMediaWriter<>)) && x.IsConcreteWithDefaultCtor() &&
                        !x.IsOpenGeneric());

            graph.Writers.AddRange(writers);


            var readers = typePool
                .TypesMatching(
                    x =>
                        x.Closes(typeof (IReader<>)) && x.IsConcreteWithDefaultCtor() &&
                        !x.IsOpenGeneric());

            graph.Readers.AddRange(readers);


            return graph;
        }
        public void SetUp()
        {
            var registry = new FubuRegistry();
            registry.Import<ApplyWindowsAuthentication>();

            theGraph = BehaviorGraph.BuildFrom(registry);
        }
示例#8
0
        private static IEnumerable<BehaviorChain> buildChains(BehaviorGraph graph)
        {
            var handlers = graph.Settings.Get<HandlerGraph>();

            // TODO -- move this to a HandlerSource after we fix the duplicate calls
            // across HandlerSource problem.
            handlers.Add(HandlerCall.For<SubscriptionsHandler>(x => x.Handle(new SubscriptionRequested())));
            handlers.Add(HandlerCall.For<SubscriptionsHandler>(x => x.Handle(new SubscriptionsChanged())));
            handlers.Add(HandlerCall.For<SubscriptionsHandler>(x => x.Handle(new SubscriptionsRemoved())));
            handlers.Add(HandlerCall.For<MonitoringControlHandler>(x => x.Handle(new TakeOwnershipRequest())));
            handlers.Add(HandlerCall.For<MonitoringControlHandler>(x => x.Handle(new TaskHealthRequest())));
            handlers.Add(HandlerCall.For<MonitoringControlHandler>(x => x.Handle(new TaskDeactivation())));

            handlers.ApplyGeneralizedHandlers();

            var policies = graph.Settings.Get<HandlerPolicies>();
            handlers.ApplyPolicies(policies.GlobalPolicies);

            foreach (var chain in handlers)
            {
                // Apply the error handling node
                chain.InsertFirst(new ExceptionHandlerNode(chain));

                // Hate how we're doing this, but disable tracing
                // on the polling job requests here.
                if (chain.InputType().Closes(typeof (JobRequest<>)))
                {
                    chain.Tags.Add(BehaviorChain.NoTracing);
                }
            }

            return handlers;
        }
        public void SetUp()
        {
            var registry = new FubuRegistry();
            registry.Import<ServerSentEventsExtension>();

            theGraph = BehaviorGraph.BuildFrom(registry);
        }
        public void Configure(BehaviorGraph graph)
        {
            var jobs = graph.Settings.Get<ScheduledJobGraph>();
            var channels = graph.Settings.Get<ChannelGraph>();

            if (jobs.Jobs.Any(x => x.Channel == null) && jobs.DefaultChannel == null)
            {
                var missing = jobs.Jobs.Where(x => x.Channel == null);
                var message =
                    "No channel configured for jobs {0} and no default Scheduled job channel configured".ToFormat(
                        missing.Select(x => x.JobType.GetFullName()).Join(", "));

                throw new InvalidOperationException(message);
            }

            jobs.Jobs.Where(x => x.Channel == null).Each(x => x.Channel = jobs.DefaultChannel);

            jobs.Jobs.Each(job => {
                var accessor = job.Channel ?? jobs.DefaultChannel;
                var channel = channels.ChannelFor(accessor);
                if (channel == null)
                {
                    throw new InvalidOperationException("Nonexistent Channel '{0}' configured for Scheduled job {1}".ToFormat(accessor, job.JobType.GetFullName()));
                }

                channel.Rules.Add(job.ToRoutingRule());
            });
        }
 public void Configure(BehaviorGraph graph)
 {
     graph.Behaviors
         .Where(x => !x.IsPartialOnly)
         .Where(x => x.ResourceType().CanBeCastTo<JsonMessage>() || x.InputType().CanBeCastTo<JsonMessage>())
         .Each(x => x.MakeAsymmetricJson());
 }
        public void SetUp()
        {
            graph = new FubuRegistry().BuildGraph();
            urls = MockRepository.GenerateMock<IUrlRegistry>();

            writer = new BehaviorGraphWriter(graph, urls, null);
        }
示例#13
0
 public PartialFactory(BehaviorGraph graph, IBehaviorFactory factory, ServiceArguments arguments, ICurrentChain currentChain)
 {
     _graph = graph;
     _factory = factory;
     _arguments = arguments;
     _currentChain = currentChain;
 }
        void IConfigurationAction.Configure(BehaviorGraph graph)
        {
            var chain = graph.BehaviorFor(_route);
            _nodes.Each(chain.AddToEnd);

            //graph.Observer.RecordStatus("Adding explicit route {0}".ToFormat(_route));
        }
示例#15
0
        public void SetUp()
        {
            var registry = new FubuRegistry();
            registry.Actions.IncludeType<JsonController>();

            theGraph = registry.BuildGraph();
        }
示例#16
0
        public void BuildBehaviors(TypePool pool, BehaviorGraph graph)
        {
            _graph = graph;

            pool.TypesMatching(TypeFilters.Matches).Each(scanMethods);
            _graph = null;
        }
 public void Configure(BehaviorGraph graph)
 {
     graph
         .Actions()
         .Where(c => c.HasAttribute<SecureAttribute>())
         .Each(c => c.WrapWith<AuthenticationRequiredBehaviour>());
 }
        public void Configure(BehaviorGraph graph)
        {
            graph.Behaviors.Where(x => x.InputType().CanBeCastTo<ResourcePath>())
                .Each(x =>
                {
                    if (!x.Route.Pattern.Contains(ResourcePath.UrlSuffix))
                    {
                        x.Route.Append(ResourcePath.UrlSuffix);

                        x.Route.RegisterRouteCustomization(r =>
                        {
                            r.Defaults.Add("Part0", null);
                            r.Defaults.Add("Part1", null);
                            r.Defaults.Add("Part2", null);
                            r.Defaults.Add("Part3", null);
                            r.Defaults.Add("Part4", null);
                            r.Defaults.Add("Part5", null);
                            r.Defaults.Add("Part6", null);
                            r.Defaults.Add("Part7", null);
                            r.Defaults.Add("Part8", null);
                            r.Defaults.Add("Part9", null);
                        });
                    }

                });
        }
		public void Configure(BehaviorGraph graph)
		{
			graph
			.Actions()
			.Where(b => b.InputType() != null && b.InputType().Namespace.ToLower().Contains("sitemanagement"))
			.Each(chain => chain.WrapWith<NTCodingAuthenticationBehaviour>());
		}
        public void Apply(BehaviorGraph graph, BehaviorChain chain)
        {
            // Don't override the route if it already exists
            if (chain.Route != null)
            {
                return;
            }

            // Don't override the route if the chain is a partial
            if (chain.IsPartialOnly)
            {
                return;
            }

            _observer = graph.Observer;

            ActionCall call = chain.Calls.FirstOrDefault();
            if (call == null) return;

            IUrlPolicy policy = _policies.FirstOrDefault(x => x.Matches(call, _observer)) ?? _defaultUrlPolicy;
            _observer.RecordCallStatus(call, "First matching UrlPolicy (or default): {0}".ToFormat(policy.GetType().Name));

            IRouteDefinition route = policy.Build(call);
            _constraintPolicy.Apply(call, route, _observer);

            _observer.RecordCallStatus(call, "Route definition determined by url policy: [{0}]".ToFormat(route.ToRoute().Url));
            chain.Route = route;
        }
 public void Configure(BehaviorGraph graph)
 {
     graph.FirstActions().Where(x => x.InputType().CanBeCastTo<DomainEntity>()).Each(call =>
     {
         call.WrapWith(typeof(EnsureEntityExistsBehavior<>), call.InputType());
     });
 }
        public void Configure(BehaviorGraph graph)
        {
            var jobs = graph.Settings.Get<PollingJobSettings>().Jobs;

            jobs.Select(x => x.ToObjectDef())
                .Each(x => graph.Services.AddService(typeof(IPollingJob), x));
        }
 public void SetUp()
 {
     theGraph = BehaviorGraph.BuildFrom(x =>
     {
         x.Actions.IncludeClassesSuffixedWithController();
     });
 }
示例#24
0
 public void Configure(BehaviorGraph graph)
 {
     graph.Behaviors
         .Where(x => !x.IsPartialOnly)
         .Where(x => x.HasResourceType() && !x.HasOutput())
         .Each(x => x.ApplyConneg());
 }
        public void beforeAll()
        {
            var registry = new FubuRegistry();
            registry.Actions.IncludeType<Controller1>();

            _graph = BehaviorGraph.BuildFrom(registry);
        }
 public void Configure(BehaviorGraph graph)
 {
     graph.Behaviors
         .Where(x => x.ResourceType().CanBeCastTo<AjaxContinuation>())
         .ToList()
         .Each(Modify);
 }
        public void SetUp()
        {
            graph = new BehaviorGraph(null);
            matcher = new ActionSourceMatcher();

            pool = new TypePool();
        }
        public void SetUp()
        {
            var registry = new FubuRegistry();
            registry.Actions.IncludeType<RouteAliasController>();

            theGraph = BehaviorGraph.BuildFrom(registry);
        }
 public void Configure(BehaviorGraph graph)
 {
     graph
         .Actions()
         .Where(c => !c.HandlerType.Namespace.Contains("Login") && !c.HandlerType.Namespace.Contains("Home"))
         .Each(c => c.WrapWith<AuthenticationRequiredBehavior>());
 }
示例#30
0
 public ExampleHtmlWriter(IServiceLocator serviceLocator, IUrlRegistry urlRegistry, BehaviorGraph behaviorGraph)
 {
     _serviceLocator = serviceLocator;
     _urlRegistry = urlRegistry;
     _behaviorGraph = behaviorGraph;
     _examplePageUrl = "_fubu/html/example".ToAbsoluteUrl();
 }
 public void Configure(BehaviorGraph graph)
 {
     graph.Handlers.Each(x => x.InsertFirst(Wrapper.For <FooWrapper>()));
 }
示例#32
0
 public void ReadConnegGraph(BehaviorGraph graph)
 {
     _graph = ConnegGraph.Build(graph);
 }
示例#33
0
 private static void startBehaviorGraph(FubuRegistry registry, BehaviorGraph graph)
 {
     graph.ApplicationAssembly = registry.ApplicationAssembly;
     registry.Config.Add(new DiscoveryActionsConfigurationPack());
 }
示例#34
0
 protected override void beforeEach()
 {
     _graph = ObjectMother.DiagnosticsGraph();
     Container.Configure(x => x.For <BehaviorGraph>().Use(() => _graph));
 }
示例#35
0
 public ChainFubuDiagnostics(BehaviorGraph graph, IChainExecutionHistory history)
 {
     _graph   = graph;
     _history = history;
 }
示例#36
0
 public void Configure(ViewBag bag, BehaviorGraph graph)
 {
     Invocations++;
 }
示例#37
0
 public ConfigLog(BehaviorGraph graph)
 {
     _graph = graph;
 }
示例#38
0
 private static void bakeBehaviorGraphIntoContainer(BehaviorGraph graph, IContainerFacility containerFacility)
 {
     graph.As <IRegisterable>().Register(containerFacility.Register);
 }
示例#39
0
 public void Configure(BehaviorGraph graph)
 {
     // insert new behaviors for some sort of
     // cross cutting concern
 }
 public void SetUp()
 {
     graph = BehaviorGraph.BuildFrom(x => x.Actions.IncludeClassesSuffixedWithController());
 }
示例#41
0
 public DiagnosticJavascriptRoutes(BehaviorGraph graph)
 {
     graph.Behaviors.OfType <DiagnosticChain>().Where(x => x.Route.AllowedHttpMethods.Any()).Each(Add);
 }
示例#42
0
 public void RunActions(string configurationType, BehaviorGraph graph)
 {
     _configurations[configurationType].RunActions(graph);
 }
示例#43
0
        public static IEnumerable <HandlerCall> Handlers(this BehaviorGraph graph)
        {
            var handlerGraph = graph.Settings.Get <HandlerGraph>();

            return(handlerGraph.SelectMany(behavior => behavior.OfType <HandlerCall>().Distinct()));
        }
示例#44
0
 public AboutFubuDiagnostics(AppReloaded reloaded, BehaviorGraph graph, FubuRuntime runtime)
 {
     _reloaded = reloaded;
     _graph    = graph;
     _runtime  = runtime;
 }
示例#45
0
 private void registeredTypeIs <TService, TImplementation>()
 {
     BehaviorGraph.BuildFrom(x => x.Import <AssetBottleRegistration>()).Services.DefaultServiceFor <TService>().Type.ShouldEqual(
         typeof(TImplementation));
 }
 public void Configure(BehaviorGraph graph)
 {
     graph.Behaviors.Each(analyzeChain);
 }
示例#47
0
 protected virtual void precompile(BehaviorGraph graph)
 {
     // do nothing
 }
示例#48
0
 public void Configure(BehaviorGraph graph)
 {
     Count++;
 }
示例#49
0
 public EndpointExplorerFubuDiagnostics(BehaviorGraph graph, IUrlRegistry urls)
 {
     _graph = graph;
     _urls  = urls;
 }
示例#50
0
        public void script_graph_is_registered()
        {
            var services = BehaviorGraph.BuildFrom(x => x.Import <AssetBottleRegistration>()).Services;

            services.DefaultServiceFor <AssetGraph>().Value.ShouldNotBeNull();
        }
示例#51
0
 public EndpointExplorerEndpoint(BehaviorGraph graph, IUrlRegistry urls)
 {
     _graph = graph;
     _urls  = urls;
 }
 public void SetUp()
 {
     theGraph = BehaviorGraph.BuildFrom(x => {
         x.Actions.IncludeType <ResourceTypeEndpoints>();
     });
 }
示例#53
0
 public void Configure(BehaviorGraph graph)
 {
     addAboutEndpoint(graph);
     addReloadedEndpoint(graph);
 }
示例#54
0
 public void Fill(ViewEngineSettings settings, BehaviorGraph graph, IPerfTimer timer, IFubuApplicationFiles files)
 {
     _views = tokens().Where(x => !graph.Settings.Get <ViewEngineSettings>().IsExcluded(x)).ToList();
 }
示例#55
0
 public RequestExplorerAction(BehaviorGraph graph, IEndpointService endpointService)
     : base(graph, endpointService)
 {
 }
示例#56
0
 public void Configure(BehaviorGraph graph)
 {
     graph.Actions()
     .Where(x => !x.HandlerType.Name.StartsWith("Get", StringComparison.InvariantCultureIgnoreCase) && x.HasInput)
     .Each(x => x.AddBefore(new ValidationNode(x.InputType())));
 }
示例#57
0
 private void registeredTypeIs <TService, TImplementation>()
 {
     BehaviorGraph.BuildEmptyGraph().Services.DefaultServiceFor <TService>().Type.ShouldEqual(
         typeof(TImplementation));
 }
 public void Configure(BehaviorGraph graph)
 {
     throw new System.NotImplementedException();
 }
示例#59
0
 public GraphQuery(BehaviorGraph graph)
 {
     _graph = graph;
 }
示例#60
0
 public HtmlConventionsAction(BehaviorGraph graph, IEndpointService endpointService)
     : base(graph, endpointService)
 {
 }