public async Task <IViewComponentResult> InvokeAsync(EntityTreeOptions options) { if (options == null) { options = new EntityTreeOptions();; } // Get entities var entities = await GetSimpleEntitiesAsync(options.IndexOptions); // Add entities to view model options.Entities = entities?.Data?.BuildHierarchy <SimpleEntity>()?.OrderBy(r => r.SortOrder); // Do we have a menu to display? if (!string.IsNullOrEmpty(options.EditMenuViewName)) { // Ensure we have permission to at least 1 of the menu options if (!_displayMenu.HasValue) { await DisplayMenu(); } if (!_displayMenu.Value) { // If we don't have permission disable menu options.EditMenuViewName = string.Empty; } } // Return view return(View(options)); }
IList <Selection <ISimpleEntity> > BuildSelectionsAsync(EntityTreeOptions options) { // Build a model for our tree return(options.Entities?.Select(e => new Selection <ISimpleEntity> { IsSelected = options.SelectedEntity.Equals(e.Id), Value = e }) .ToList()); }
public Task <IViewComponentResult> InvokeAsync(EntityTreeOptions options) { if (options == null) { options = new EntityTreeOptions(); } // Build selection including parents var selected = BuildSelectionsAsync(options); return(Task.FromResult((IViewComponentResult)View(new EntityTreeViewModel { HtmlName = options.HtmlName, EnableCheckBoxes = options.EnableCheckBoxes, EditMenuViewName = options.EditMenuViewName, CssClass = options.CssClass, RouteValues = options.RouteValues, SelectedEntities = selected, SelectedParents = options.Entities?.RecurseParents <SimpleEntity>(options.SelectedEntity) }))); }