コード例 #1
0
        private PropMap CreatePropMap(Type sourceType, Type destType, ListControlActionType actionType)
        {
            PropMap map = new PropMap(sourceType, destType, actionType);

            if (Maps.Any(m => m.Equals(map)))
            {
                throw new InvalidOperationException("Same map already added.");
            }

            Maps.Add(map);
            return(map);
        }
コード例 #2
0
 internal PropMap(Type srcType, Type destType, ListControlActionType actionType)
 {
     SourceType        = srcType;
     DestinationType   = destType;
     ListControlAction = actionType;
 }
コード例 #3
0
ファイル: PropMap.cs プロジェクト: koder05/fogel-ba
		internal PropMap(Type srcType, Type destType, ListControlActionType actionType)
		{
			SourceType = srcType;
			DestinationType = destType;
			ListControlAction = actionType; 
		}
コード例 #4
0
 public PropMapExpr <TSource, TDest> CreateMap <TSource, TDest>(ListControlActionType actionType)
     where TSource : class, new()
     where TDest : class, new()
 {
     return(new PropMapExpr <TSource, TDest>(this.CreatePropMap(typeof(TSource), typeof(TDest), actionType)));
 }
コード例 #5
0
        public IEnumerable <LambdaExpression> FindResolution(Type sourceType, Type destType, ListControlActionType actionType, string memberName)
        {
            PropMap map = Maps
                          .Where(m => m.SourceType == sourceType && m.DestinationType == destType && (m.ListControlAction == actionType || m.ListControlAction == ListControlActionType.Common))
                          .OrderByDescending(m => m.ListControlAction)
                          .FirstOrDefault();

            if (map != null && map.Members.ContainsKey(memberName))
            {
                return(map.Members[memberName]);
            }

            return(null);
        }