public IStrategy AddCareList(params string[] fields) { if (FilterList == null) { ResetFilterList(FilterListType.Care); } if (FilterList.TYPE == FilterListType.Care) { if (fields != null && fields.Length > 0) { FilterList.Add(fields); } } return(this); }
private void ResetFilterList(FilterListType type) { if (FilterList != null) { if (FilterList.TYPE == type) { FilterList.Clear(); } else { ResetFilterList(); FilterList = new FilterList(type); } } else { FilterList = new FilterList(type); } }
public IStrategy ResetFilterList() { FilterList.Clear(); FilterList = null; return(this); }
private List <Pair> GetMappingList(object obj1, object obj2) { var list = new List <Pair>(); var members1 = obj1.GetType().GetMembers().Where(m => m.MemberType == System.Reflection.MemberTypes.Field || m.MemberType == System.Reflection.MemberTypes.Property).ToArray(); var members2 = obj2.GetType().GetMembers().Where(m => m.MemberType == System.Reflection.MemberTypes.Field || m.MemberType == System.Reflection.MemberTypes.Property).ToArray(); if (FilterList != null) { switch (FilterList.TYPE) { case FilterListType.Care: foreach (var mem2 in members2) { if (FilterList.IsEmpty || FilterList.Contains(mem2.Name)) { var mem1 = members1.FirstOrDefault(m => m.Name == mem2.Name); if (mem1 != null) { var pair = Pair.Create(mem1.Name, mem2.Name); if (pair != null) { list.Add(pair); } } } } break; case FilterListType.Ignore: if (!FilterList.IsEmpty) { foreach (var mem2 in members2) { if (!FilterList.Contains(mem2.Name)) { var mem1 = members1.FirstOrDefault(m => m.Name == mem2.Name); if (mem1 != null) { var pair = Pair.Create(mem1.Name, mem2.Name); if (pair != null) { list.Add(pair); } } } } } break; } } //增加Mapping绑定 if (MappingList.Count > 0) { foreach (var pair in MappingList) { var index = list.FindIndex(itm => itm.Member2.Equals(pair.Member2)); if (index >= 0) { list.RemoveAt(index); } list.Add(pair); } } return(list); }
private FilterList(FilterList list) { this.TYPE = list.TYPE; this.List = new List <string>(); list.List.ForEach(item => this.List.Add(item)); }