Beispiel #1
0
        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);
        }
Beispiel #2
0
 public RouteBuilder Map(string path, Action <RouteBuilder> map, RouteOptions options = null)
 {
     if (options == null)
     {
         options = new RouteOptions();
     }
     options.Path = path;
     return(Map(options, map));
 }
Beispiel #3
0
 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));
 }
Beispiel #4
0
 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
 };
Beispiel #5
0
        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);
        }
Beispiel #6
0
 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");
 }
Beispiel #7
0
 public RouteBuilder(RouteOptions options) : base(options)
 {
 }
Beispiel #8
0
 protected BaseBuilder(RouteOptions options)
 {
     RouteOptions = Utils.MergeOptions(options);
     Children     = new List <BaseBuilder>();
 }
Beispiel #9
0
 protected BaseBuilder()
 {
     RouteOptions = new RouteOptions();
     Children     = new List <BaseBuilder>();
 }
Beispiel #10
0
 protected IntermediateBuilder(RouteOptions options) : base(options)
 {
 }