public DevDashboardViewModel GetViewModel() { var umbracoRepository = new UmbracoRepository(); var dashboardViewModel = new DevDashboardViewModel(); dashboardViewModel.HijackedRoutes = umbracoRepository.GetControllersAssignableFrom(typeof (IRenderMvcController), true) .Select(x => new HijackedRouteViewModel { Name = x.Name, Namespace = x.Namespace, ActionMethods = x.ActionMethods, }) .OrderBy(x => x.Name) .ToList(); dashboardViewModel.SurfaceControllers = umbracoRepository.GetControllersAssignableFrom(typeof(SurfaceController)) .Select(x => new SurfaceControllerViewModel { Name = x.Name, Namespace = x.Namespace, ActionMethods = x.ActionMethods, }) .OrderBy(x => x.Name) .ToList(); dashboardViewModel.ApplicationEventHandlers = umbracoRepository.GetApplicationEventHandlers() .Select(x => new ApplicationEventHandlerViewModel { Name = x.Name, Namespace = x.Namespace, }) .OrderBy(x => x.Name) .ToList(); dashboardViewModel.ContentFinders = umbracoRepository.GetContentFinders() .Select(x => new ContentFinderViewModel { Name = x.Name, Namespace = x.Namespace, }) .OrderBy(x => x.Name) .ToList(); dashboardViewModel.CustomEvents.AddRange(GetCustomEventsForType(umbracoRepository, ApplicationContext.Current.Services.ContentService, "ContentService")); dashboardViewModel.CustomEvents.AddRange(GetCustomEventsForType(umbracoRepository, ApplicationContext.Current.Services.MediaService, "MediaService")); dashboardViewModel.CustomEvents.AddRange(GetCustomEventsForType(umbracoRepository, ApplicationContext.Current.Services.MemberService, "MemberService")); return dashboardViewModel; }