Table of Contents

Class StreamFallback

Namespace
ToSic.Eav.DataSources
Assembly
ToSic.Eav.DataSources.dll

The base class for all DataSources, especially custom DataSources. It must always be inherited. It provides a lot of core functionality to get configurations, ensure caching and more.

Important: in most cases you will inherit the CustomDataSource DataSource for custom data sources.

The StreamFallback DataSource is part of the Standard EAV Data Sources. It will pass on the first stream which has results. The order of evaluation is based on the names of the streams as they enter the StreamFallback.

How to use with the VisualQuery

When using the VisualQuery you can just drag it into your query. This is what it usually looks like:

The above example shows a query from the blog app:

  1. a stream-fallback with 4 in-streams
  2. the first stream which would filter by tag, if the URL had a tag in it - as the test-data has no tag, this stream delivers no results
  3. the second stream filters by author - as the url would have an author (specified in the test-values), it does return items

The StreamFallback therefor passes on the items provided by the author-filter. Note that while using the VisualQuery, all other streams are also processed to show what's happening. At runtime it will stop processing other streams once it's found a first match.

Programming With The StreamFallback DataSource

We recommend to use the VisualQuery where possible, as it's easier to understand and is identical for C# and JavaScript. It's also better because it separates data-retrieval from visualization.

Read also

You should find some examples in this demo App

History

  1. Introduced in EAV 3.x, 2sxc ?

API Documentation

[PublicApi]
[VisualQuery(NiceName = "Stream Fallback", UiHint = "Find the first stream which has data", Icon = "call_merge", Type = DataSourceType.Logic, NameId = "ToSic.Eav.DataSources.StreamFallback, ToSic.Eav.DataSources", DynamicOut = false, DynamicIn = true, HelpLink = "https://go.2sxc.org/DsStreamFallback")]
public sealed class StreamFallback : DataSourceBase, IDataSource, IAppIdentity, IZoneIdentity, IAppIdentityLight, ICacheKey, ICacheExpiring, ITimestamped, IHasLog, IDataSourceLinkable
Inheritance
StreamFallback
Implements
Inherited Members

Remarks

Had a major, breaking update in v15. Consult the guide to upgrade your custom data sources.