public override IViewComponentResult Invoke(object data = null) { var dataAsDict = data as Dictionary <string, object>; if (dataAsDict == null) { return(R.Success.ComponentResult); } var widgetId = dataAsDict["id"].ToString(); var widgetSettings = _widgetService.LoadWidgetSettings <MenuWidgetSettings>(widgetId); var menu = _menuService.Get(widgetSettings.MenuId); if (menu == null) { return(R.Success.ComponentResult); } var widgetNavigation = NavigationObject.GetNavigation(menu.MenuItems, widgetId, _categoryService.GetFullCategoryTree()); return(R.Success.With("title", widgetSettings.Title) .With("widgetNavigation", widgetNavigation) .With("widgetId", widgetId) .ComponentResult); }