Brewage.Web.UnityControllerFactory.CreateController C# (CSharp) Method

CreateController() public method

public CreateController ( System.Web.Routing.RequestContext requestContext, string controllerName ) : IController
requestContext System.Web.Routing.RequestContext
controllerName string
return IController
        public IController CreateController(RequestContext requestContext, string controllerName)
        {
            IContainerAccessor containerAccessor =
                requestContext.HttpContext.ApplicationInstance as IContainerAccessor;

            //TODO: this needs to be cached
            Assembly currentAssembly = Assembly.GetExecutingAssembly();
            var controllerTypes = from t in currentAssembly.GetTypes()
                                  where t.Name.Contains(controllerName + "Controller")
                                  select t;

            if (controllerTypes.Count() > 0)
            {
                //contruct the controller using the unity container.
                return containerAccessor.Container.Resolve(controllerTypes.First()) as IController;
            }
            else
            {
                return null;
            }
        }