Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
 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());
 }
Ejemplo n.º 3
0
        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)
            })));
        }