/// <summary> /// Reads the specified <paramref name="source"/> /// </summary> /// <param name="source">The source to be read</param> /// <returns>An <see cref="IEnumerable{BaseData}"/> that contains the data in the source</returns> public IEnumerable <BaseData> Read(SubscriptionDataSource source) { List <string> entryNames; try { entryNames = _dataProvider.GetZipEntries(source.Source); } catch (Exception err) { OnInvalidSource(source, err); yield break; } foreach (var entryFileName in entryNames) { var instance = _factory.Reader(_config, entryFileName, _date, _isLiveMode); if (instance != null && instance.EndTime != default(DateTime)) { yield return(instance); } } }