private async Task <IList <Selection <CategoryBase> > > BuildChannelSelectionsAsync( CategoryInputOptions options) { if (options == null) { options = new CategoryInputOptions(); } if (options.Categories != null) { var items = await RecurseCategories(options.Categories); var selections = items.Select(c => new Selection <CategoryBase> { IsSelected = options.SelectedCategories.Any(v => v == c.Id), Value = c }) .OrderBy(r => r.Value) .ToList(); return(selections); } return(null); }
public override async Task <IViewProviderResult> BuildEditAsync(Moderator moderator, IViewProviderContext updater) { // Build input options var viewModel = new CategoryInputOptions() { HtmlName = ChannelHtmlName, SelectedCategories = new int[] { moderator.CategoryId }, Categories = await GetCategories() }; return(Views( View <CategoryInputOptions>("Moderation.Channels.Edit.Content", model => viewModel).Zone("sidebar").Order(1) )); }
public async Task <IViewComponentResult> InvokeAsync(CategoryInputOptions options) { if (options.SelectedCategories == null) { options.SelectedCategories = new int[0]; } var categories = await BuildChannelSelectionsAsync(options); var model = new CategoryInputViewModel(categories) { HtmlName = options.HtmlName }; return(View(model)); }