public static async Task <IEnumerable <LocalizedString> > GetCategoriesAsync(this IActivityLibrary activityLibrary, CancellationToken cancellationToken) { var descriptors = await activityLibrary.ListBrowsableAsync(cancellationToken); return(descriptors .Select(x => x.Category) .Distinct(new LocalizedStringEqualityComparer()) .OrderBy(x => x.Value)); }
public async Task <IViewComponentResult> InvokeAsync(CancellationToken cancellationToken) { var descriptors = await activityLibrary.ListBrowsableAsync(cancellationToken).ToListAsync(); var categories = await activityLibrary.GetCategoriesAsync(cancellationToken); var cardShapes = await Task.WhenAll(descriptors.Select(x => CreateCardShapeAsync(x, cancellationToken))); var viewModel = new ActivityPickerViewModel(categories, descriptors, cardShapes); return(View(viewModel)); }