using System.Collections; using Elsa.Http.Abstractions; using Elsa.Http.Contexts; using Elsa.Http.Models; namespace Elsa.Http.DownloadableContentHandlers; /// /// Handles content that represents a list of downloadable objects. /// public class MultiDownloadableContentHandler : DownloadableContentHandlerBase { /// public override bool GetSupportsContent(object content) => content is IEnumerable and not string and not byte[]; /// protected override IEnumerable>> GetDownloadablesAsync(DownloadableContext context) { var collectedDownloadables = new List>>(); var content = context.Content; var enumerable = (IEnumerable) content; var manager = context.Manager; foreach (var item in enumerable) { var downloadables = manager.GetDownloadablesAsync(item, context.Options, context.CancellationToken); collectedDownloadables.AddRange(downloadables); } return collectedDownloadables; } }