Пример #1
0
        /// <summary>
        /// 初始化辅助数据写入器。
        /// </summary>
        /// <param name="dataWriter">原始数据写入器</param>
        /// <param name="valueFilter">数据筛选器</param>
        public DataFilterWriter(IDataWriter <TKey> dataWriter, IValueFilter <TKey> valueFilter)
        {
            DataWriter  = dataWriter;
            ValueFilter = valueFilter;

            ValueInfo = new ValueFilterInfo <TKey>();
        }
Пример #2
0
        /// <summary>
        /// 对数据源中的原有成员的名称和值进行筛选,并将满足筛选的结果写入到数据写入器中。
        /// </summary>
        /// <param name="dataWriter">数据写入器</param>
        /// <param name="valueFilter">值筛选器</param>
        public void OnReadAll(IDataWriter <string> dataWriter, IValueFilter <string> valueFilter)
        {
            var filter = new DataFilterWriter <string>(dataWriter, valueFilter);

            if ((flags & XBindingFlags.SkipDefaultValue) != 0)
            {
                var valueCopyer = new ValueCopyer();

                foreach (var item in fields)
                {
                    item.OnReadValue(obj, valueCopyer);

                    if (!valueCopyer.IsEmptyValue())
                    {
                        valueCopyer.WriteTo(filter[item.Name]);
                    }
                }
            }
            else
            {
                foreach (var item in fields)
                {
                    item.OnReadValue(obj, filter[item.Name]);
                }
            }
        }
Пример #3
0
        /// <summary>
        /// 对数据源中的原有成员的名称和值进行筛选,并将满足筛选的结果写入到数据写入器中。
        /// </summary>
        /// <param name="dataWriter">数据写入器</param>
        /// <param name="valueFilter">值筛选器</param>
        public void OnReadAll(IDataWriter <string> dataWriter, IValueFilter <string> valueFilter)
        {
            var dataFilterWriter = new DataFilterWriter <string>(dataWriter, valueFilter);

            foreach (var item in rFields)
            {
                item.WriteTo(this, dataFilterWriter);
            }
        }
Пример #4
0
        /// <summary>
        /// Adds an <see cref="IValueFilter"/> to the value filter set.
        /// </summary>
        /// <param name="valueFilter">
        /// The filter to add.
        /// </param>
        /// <returns>
        /// The current <see cref="ValueFilterSet{T}"/>.
        /// </returns>
        public ValueFilterSet <T> Add([NotNull] IValueFilter valueFilter)
        {
            if (valueFilter == null)
            {
                throw new ArgumentNullException(nameof(valueFilter));
            }

            this.valueFilters.Add(valueFilter);
            return(this);
        }
Пример #5
0
        public void OnReadAll(IDataWriter <TKey> dataWriter, IValueFilter <TKey> valueFilter)
        {
            var valueInfo = new ValueFilterInfo <TKey>();

            foreach (var item in content)
            {
                ValueInterface <TValue> .WriteValue(valueInfo.ValueCopyer, item.Value);

                valueInfo.Key  = item.Key;
                valueInfo.Type = typeof(TValue);

                if (valueFilter.Filter(valueInfo))
                {
                    valueInfo.ValueCopyer.WriteTo(dataWriter[valueInfo.Key]);
                }
            }
        }
Пример #6
0
        public void OnReadAll(IDataWriter <object> dataWriter, IValueFilter <object> valueFilter)
        {
            var valueInfo = new ValueFilterInfo <object>();

            foreach (DictionaryEntry item in content)
            {
                ValueInterface.WriteValue(valueInfo.ValueCopyer, item.Value);

                valueInfo.Key  = item.Key;
                valueInfo.Type = typeof(object);

                if (valueFilter.Filter(valueInfo))
                {
                    valueInfo.ValueCopyer.WriteTo(dataWriter[valueInfo.Key]);
                }
            }
        }
Пример #7
0
        public void OnReadAll(IDataWriter <string> dataWriter, IValueFilter <string> valueFilter)
        {
            var valueInfo = new ValueFilterInfo <string>();

            foreach (DataColumn item in Content.Table.Columns)
            {
                ValueInterface.GetInterface(item.DataType).Write(valueInfo.ValueCopyer, Content[item.Ordinal]);

                valueInfo.Key  = item.ColumnName;
                valueInfo.Type = item.DataType;

                if (valueFilter.Filter(valueInfo))
                {
                    valueInfo.ValueCopyer.WriteTo(dataWriter[valueInfo.Key]);
                }
            }
        }
Пример #8
0
        public void OnReadAll(IDataWriter<int> dataWriter, IValueFilter<int> valueFilter)
        {
            var valueInfo = new ValueFilterInfo<int>();

            for (int i = 0; i < Content.Tables.Count; i++)
            {
                OnReadValue(i, valueInfo.ValueCopyer);

                valueInfo.Key = i;
                valueInfo.Type = typeof(DataTable);

                if (valueFilter.Filter(valueInfo))
                {
                    valueInfo.ValueCopyer.WriteTo(dataWriter[valueInfo.Key]);
                }
            }
        }
Пример #9
0
        public override void OnReadAll(IDataWriter <int> dataWriter, IValueFilter <int> valueFilter)
        {
            int length = Count;

            var valueInfo = new ValueFilterInfo <int>();

            for (int i = 0; i < length; ++i)
            {
                valueInfo.ValueCopyer.WriteArray(new ChildrenRW(this, i));

                valueInfo.Key  = i;
                valueInfo.Type = typeof(T[]);

                if (valueFilter.Filter(valueInfo))
                {
                    valueInfo.ValueCopyer.WriteTo(dataWriter[valueInfo.Key]);
                }
            }
        }
Пример #10
0
        public void OnReadAll(IDataWriter <string> dataWriter, IValueFilter <string> valueFilter)
        {
            int length = Count;

            var valueInfo = new ValueFilterInfo <string>();

            for (int i = 0; i < length; i++)
            {
                OnReadValue(i, valueInfo.ValueCopyer);

                valueInfo.Key  = Content.Columns[i].ColumnName;
                valueInfo.Type = valueInfo.ValueCopyer.Type;

                if (valueFilter.Filter(valueInfo))
                {
                    valueInfo.ValueCopyer.WriteTo(dataWriter[valueInfo.Key]);
                }
            }
        }
Пример #11
0
        /// <summary>
        /// 读取当前行的所有数据并进行筛选,然后将筛选结果写入器数据写入器中。
        /// </summary>
        /// <param name="dataWriter">数据写入器</param>
        /// <param name="valueFilter">值筛选器</param>
        public void OnReadAll(IDataWriter <int> dataWriter, IValueFilter <int> valueFilter)
        {
            int length = dbDataReader.FieldCount;

            var valueInfo = new ValueFilterInfo <int>();

            for (int i = 0; i < length; i++)
            {
                OnReadValue(i, valueInfo.ValueCopyer);

                valueInfo.Key  = i;
                valueInfo.Type = valueInfo.ValueCopyer.Type;

                if (valueFilter.Filter(valueInfo))
                {
                    valueInfo.ValueCopyer.WriteTo(dataWriter[i]);
                }
            }
        }
Пример #12
0
            public void OnReadAll(IDataWriter <int> dataWriter, IValueFilter <int> valueFilter)
            {
                int length = Count;

                var valueInfo = new ValueFilterInfo <int>();

                for (int i = 0; i < length; ++i)
                {
                    var value = content.content[baseIndex, i];

                    ValueInterface <T> .WriteValue(valueInfo.ValueCopyer, value);

                    valueInfo.Key  = i;
                    valueInfo.Type = typeof(T);

                    if (valueFilter.Filter(valueInfo))
                    {
                        valueInfo.ValueCopyer.WriteTo(dataWriter[valueInfo.Key]);
                    }
                }
            }
Пример #13
0
 public virtual Task <ActionResult> ValueFilter(string property, string value, string selected = null)
 {
     return(Task.Run <ActionResult>(() =>
     {
         IPropertyMetadata p = Metadata.GetProperty(property);
         if (p == null)
         {
             return new HttpStatusCodeResult(404);
         }
         ValueFilterAttribute filterAttribute = p.GetAttribute <ValueFilterAttribute>();
         if (filterAttribute == null)
         {
             return new HttpStatusCodeResult(400);
         }
         IValueFilter filter = (IValueFilter)Resolver.GetService(filterAttribute.ValueFilter);
         ViewBag.Selected = selected;
         ViewBag.IsRequired = p.IsRequired;
         var collection = filter.GetValues(filterAttribute.DependencyProperty, value);
         return View(collection);
     }));
 }
Пример #14
0
        /// <summary>
        /// 读取当前行的所有数据并进行筛选,然后将筛选结果写入器数据写入器中。
        /// </summary>
        /// <param name="dataWriter">数据写入器</param>
        /// <param name="valueFilter">值筛选器</param>
        public void OnReadAll(IDataWriter <int> dataWriter, IValueFilter <int> valueFilter)
        {
            int length = dbDataReader.FieldCount;

            var valueInfo = new ValueFilterInfo <int>();

            for (int i = 0; i < length; i++)
            {
                var value = dbDataReader[i];

                ValueInterface.GetInterface(value).Write(valueInfo.ValueCopyer, value);

                valueInfo.Key  = i;
                valueInfo.Type = dbDataReader.GetFieldType(i);

                if (valueFilter.Filter(valueInfo))
                {
                    valueInfo.ValueCopyer.WriteTo(dataWriter[valueInfo.Key]);
                }
            }
        }
Пример #15
0
        public void OnReadAll(IDataWriter <int> dataWriter, IValueFilter <int> valueFilter)
        {
            int index = 0;

            var valueInfo = new ValueFilterInfo <int>();

            while (tableReader.Read())
            {
                valueInfo.ValueCopyer.WriteObject(tableReader);

                valueInfo.Key  = index;
                valueInfo.Type = tableReader.GetType();

                if (valueFilter.Filter(valueInfo))
                {
                    valueInfo.ValueCopyer.WriteTo(dataWriter[index]);
                }

                ++index;
            }
        }
Пример #16
0
        public void OnReadAll(IDataWriter <int> dataWriter, IValueFilter <int> valueFilter)
        {
            int count = content.Count;

            var valueInfo = new ValueFilterInfo <int>();

            for (int i = 0; i < count; i++)
            {
                var value = content[i];

                ValueInterface <TValue> .Content.WriteValue(valueInfo.ValueCopyer, value);

                valueInfo.Key  = i;
                valueInfo.Type = typeof(TValue);

                if (valueFilter.Filter(valueInfo))
                {
                    valueInfo.ValueCopyer.WriteTo(dataWriter[valueInfo.Key]);
                }
            }
        }
Пример #17
0
        /// <summary>
        /// 对数据源中的原有成员的名称和值进行筛选,并将满足筛选的结果写入到数据写入器中。
        /// </summary>
        /// <param name="dataWriter">数据写入器</param>
        /// <param name="valueFilter">值筛选器</param>
        public void OnReadAll(IDataWriter <string> dataWriter, IValueFilter <string> valueFilter)
        {
            var filter = new DataFilterWriter <string>(dataWriter, valueFilter);

            OnReadAll(filter);
        }
Пример #18
0
 public static void Copy <T>(IDataReader dataReader, IDataWriter <T> dataWriter, IValueFilter <T> valueFilter)
 {
     Copy(dataReader.As <T>(), dataWriter, valueFilter);
 }
Пример #19
0
 public static void Copy <T>(IDataReader <T> dataReader, IDataWriter <T> dataWriter, IValueFilter <T> valueFilter)
 {
     dataReader.OnReadAll(dataWriter, valueFilter);
 }
Пример #20
0
 public void OnReadAll(IDataWriter <TIn> dataWriter, IValueFilter <TIn> valueFilter) =>
 dataReader.OnReadAll(new AsReadAllWriter <TOut, TIn>(dataWriter), new AsReadAllFilter <TOut, TIn>(valueFilter));
Пример #21
0
 /// <summary>
 /// 将数据中的所有转换后的键与值进行筛选,并将满足筛选的键与值写入到数据写入器中。
 /// </summary>
 /// <param name="dataWriter">数据写入器</param>
 /// <param name="valueFilter">键值筛选器</param>
 public void OnReadAll(IDataWriter <TOut> dataWriter, IValueFilter <TOut> valueFilter)
 {
     dataRW.OnReadAll(new AsReadAllWriter <TIn, TOut>(dataWriter), new AsReadAllFilter <TIn, TOut>(valueFilter));
 }
Пример #22
0
 public void OnReadAll(IDataWriter <string> dataWriter, IValueFilter <string> valueFilter)
 {
     OnReadAll(new DataFilterWriter <string>(dataWriter, valueFilter));
 }
Пример #23
0
 public abstract void OnReadAll(IDataWriter <int> dataWriter, IValueFilter <int> valueFilter);
Пример #24
0
 public ReadAllWriter(IDataWriter <TOut> dataWriter, IValueFilter <TOut> valueFilter)
 {
     this.dataWriter  = dataWriter;
     this.valueFilter = valueFilter;
 }
Пример #25
0
 public void OnReadAll(IDataWriter <int> dataWriter, IValueFilter <int> valueFilter)
 {
     OnReadAll(new DataFilterWriter <int>(dataWriter, valueFilter));
 }
Пример #26
0
 public virtual B SetValueFilter(IValueFilter <V> valueFilter)
 {
     _config._valueFilter = valueFilter;
     return((B)(object)this);
 }
Пример #27
0
 public AsReadAllFilter(IValueFilter <TOut> valueFilter)
 {
     this.valueFilter = valueFilter;
 }
Пример #28
0
        /// <summary>
        /// 将数据中的所有转换后的键与值进行筛选,并将满足筛选的键与值写入到数据写入器中。
        /// </summary>
        /// <param name="dataWriter">数据写入器</param>
        /// <param name="valueFilter">键值筛选器</param>
        public void OnReadAll(IDataWriter <TOut> dataWriter, IValueFilter <TOut> valueFilter)
        {
            var readAllWriter = new ReadAllWriter(dataWriter, valueFilter);

            dataReader.OnReadAll(readAllWriter, readAllWriter);
        }