public static RouteOptions MergeOptions(params RouteOptions[] vars) { var ro = new RouteOptions(); foreach (var option in vars) { if (option.ActionHandler != null) { ro.ActionHandler = option.ActionHandler; } if (option.ClassHandler != null) { ro.ClassHandler = option.ClassHandler; } if (option.Methods != null) { ro.Methods = option.Methods; } if (option.Path != null) { ro.Path = option.Path; } ro.Defaults = MergeDefaults(ro.Defaults, option.Defaults); ro.Constraints = MergeConstraints(ro.Constraints, option.Constraints); } return(ro); }
public RouteBuilder Map(string path, Action <RouteBuilder> map, RouteOptions options = null) { if (options == null) { options = new RouteOptions(); } options.Path = path; return(Map(options, map)); }
public RouteBuilder Map <T>(string path, Action <RouteBuilder> map, RouteOptions options = null) where T : IController { if (options == null) { options = new RouteOptions(); } options.ClassHandler = typeof(T); return(Map(path, map, options)); }
public static Route FromOptions(RouteOptions options) => new Route { Path = options.Path, Constraints = options.Constraints, Defaults = options.Defaults, ActionHandler = options.ActionHandler, ClassHandler = options.ClassHandler, Methods = options.Methods };
public RouteBuilder Map(RouteOptions options, Action <RouteBuilder> map) { var opts = Utils.MergeOptions(RouteOptions, options); var rb = new RouteBuilder(opts) { RouteOptions = { Path = Utils.JoinPath(RouteOptions.Path, options.Path) } }; Children.Add(rb); map.Invoke(rb); return(rb); }
public ResourceBuilder(string prefix, RouteOptions options) { RouteOptions = Utils.MergeOptions(options, new RouteOptions { ClassHandler = typeof(T) }); RouteOptions.Path = Utils.JoinPath(options.Path, prefix); _rb = new RouteBuilder(RouteOptions); Children.Add(_rb); _rb.Get("/").Action("Show"); _rb.Post("/").Action("Create"); _rb.Get("/new").Action("New"); _rb.Get("/edit").Action("Edit"); _rb.Path("/").Methods("put", "patch").Action("Update"); _rb.Delete("/").Action("Delete"); _rb.Options("/").Action("Options"); _rb.Options("/new").Action("Options"); _rb.Options("/edit").Action("Options"); }
public RouteBuilder(RouteOptions options) : base(options) { }
protected BaseBuilder(RouteOptions options) { RouteOptions = Utils.MergeOptions(options); Children = new List <BaseBuilder>(); }
protected BaseBuilder() { RouteOptions = new RouteOptions(); Children = new List <BaseBuilder>(); }
protected IntermediateBuilder(RouteOptions options) : base(options) { }