public async Task FilterAsync(ContentOptionsViewModel model, IQuery <ContentItem> query, IUpdateModel updater) { var viewModel = new ListPartContentsAdminFilterViewModel(); if (await updater.TryUpdateModelAsync(viewModel, nameof(ListPart))) { // Show list content items if (viewModel.ShowListContentTypes) { var listableTypes = _contentDefinitionManager .ListTypeDefinitions() .Where(x => x.Parts.Any(p => p.PartDefinition.Name == nameof(ListPart))) .Select(x => x.Name); query.With <ContentItemIndex>(x => x.ContentType.IsIn(listableTypes)); } // Show contained elements for the specified list else if (viewModel.ListContentItemId != null) { query.With <ContainedPartIndex>(x => x.ListContentItemId == viewModel.ListContentItemId); } } }
public override async Task <IDisplayResult> UpdateAsync(ContentOptionsViewModel model, IUpdateModel updater) { var viewModel = new ListPartContentsAdminFilterViewModel(); if (await updater.TryUpdateModelAsync(viewModel, nameof(ListPart))) { if (viewModel.ShowListContentTypes) { model.RouteValues.TryAdd("ListPart.ShowListContentTypes", viewModel.ShowListContentTypes); } if (!string.IsNullOrEmpty(viewModel.ListContentItemId)) { model.RouteValues.TryAdd("ListPart.ListContentItemId", viewModel.ListContentItemId); } } return(Edit(model, updater)); }