public void Add(FluentActionCollection fluentActions) { foreach (var fluentAction in fluentActions) { PreConfigureAction(fluentAction); FluentActions.Add(fluentAction); } }
public static IApplicationBuilder UseFluentActions( this IApplicationBuilder app, FluentActionCollection fluentActions) { if (fluentActions == null) { throw new ArgumentNullException(nameof(fluentActions)); } var controllerDefinitionBuilder = new FluentActionControllerDefinitionBuilder(); var controllerDefinitions = fluentActions .Select(fluentAction => controllerDefinitionBuilder.Build(fluentAction)) .ToList(); if (!controllerDefinitions.Any()) { return(app); } var context = (FluentActionControllerFeatureProviderContext)app .ApplicationServices .GetService(typeof(FluentActionControllerFeatureProviderContext)); if (context == null) { throw new Exception("Could not find a feature provider for fluent actions, did you remember to call app.AddMvc().AddFluentActions()?"); } if (context.ControllerDefinitions == null) { context.ControllerDefinitions = controllerDefinitions; } else { context.ControllerDefinitions = context.ControllerDefinitions.Concat(controllerDefinitions); } app.UseEndpoints(routes => { foreach (var controllerDefinition in controllerDefinitions .Where(controllerDefinition => controllerDefinition.FluentAction.Definition.IsMapRoute)) { routes.MapControllerRoute( controllerDefinition.Id, controllerDefinition.RouteTemplate.WithoutLeading("/"), new { controller = controllerDefinition.Name.WithoutTrailing("Controller"), action = controllerDefinition.ActionName }); } }); return(app); }
public static FluentActionCollection DefineActions(Action <FluentActionCollection> addFluentActions) { var actionCollection = new FluentActionCollection(new FluentActionCollectionConfig()); addFluentActions(actionCollection); actionCollection.PostConfigureActions(); return(actionCollection); }
public static IApplicationBuilder UseFluentActions( this IApplicationBuilder app, Action <FluentActionCollection> addFluentActions) { if (addFluentActions == null) { throw new ArgumentNullException(nameof(addFluentActions)); } var fluentActions = FluentActionCollection.DefineActions(addFluentActions); return(app.UseFluentActions(fluentActions)); }