コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: StreamFactoryBase.cs プロジェクト: magi82/flip
            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);
            }