Ejemplo n.º 1
0
        public static HttpControllerAction Action(this ControllerContainer controllerContainer, string url)
        {
            var mvcApplication = new MvcApplication(controllerContainer, new EmptyContentProvider());

            return(new HttpControllerAction(mvcApplication)
            {
                UriPath = url
            });
        }
Ejemplo n.º 2
0
        public static HttpControllerAction ParseAction(this ControllerContainer controllerContainer, string rawHttpRequest)
        {
            var lines = rawHttpRequest.Split('\n');
            var first = lines.First();

            var parts = first.Split(' ');

            return(new HttpControllerAction(new MvcApplication(controllerContainer, new EmptyContentProvider()))
            {
                HttpMethod = parts[0],
                UriPath = parts[1]
            });
        }
Ejemplo n.º 3
0
        public static ControllerContainer RegisterControllers(this ControllerContainer container,
                                                              Func <Type, ControllerBase> factory, params Assembly[] assemblies)
        {
            const string controllerPostFix = "Controller";
            var          controllerTypes   =
                from t in ScanTypes(assemblies)
                where
                typeof(ControllerBase).IsAssignableFrom(t) &&
                t.Name.EndsWith(controllerPostFix, StringComparison.Ordinal)
                select t;

            foreach (var type in controllerTypes)
            {
                var controllerType = type;
                var name           = controllerType.Name.Substring(0, controllerType.Name.Length - controllerPostFix.Length);

                container.RegisterController(name, ctx => factory(controllerType));
            }

            return(container);
        }
Ejemplo n.º 4
0
 public static ControllerContainer RegisterControllers(this ControllerContainer container, params Assembly[] assemblies)
 {
     return(RegisterControllers(container, type => (ControllerBase)Activator.CreateInstance(type), assemblies));
 }