public TModel Execute(TModel newValue, TModel lastValue) { if (null == newValue) { throw new ArgumentNullException(nameof(newValue)); } if (null == lastValue) { throw new ArgumentNullException(nameof(lastValue)); } TModel value = newValue; var filters = (IList <IStreamFilter <TModel> >)Filters; for (int i = 0; i < filters.Count; i++) { IStreamFilter <TModel> filter = filters[i]; value = filter.Execute(value, lastValue); if (value == null) { break; } } return(value); }
private TModel Filter(TModel model) { if (null == model) { return(null); } ThrowIfModelHasInvalidId(model); IStreamFilter <TModel> filter = _factory.Filter; TModel filtered = filter.Execute(model, _observable.Value); if (null == filtered) { return(null); } ThrowIfModelHasInvalidId(filtered); return(filtered); }