Esempio n. 1
0
        /// <summary>
        /// 查找路由数据
        /// </summary>
        /// <param name="formRouteData">源路由数据</param>
        /// <returns>目标路由数据集合</returns>
        public virtual IList <AbstractRouteData> FindRouteData(AbstractFormRouteData formRouteData)
        {
            var result = new List <AbstractRouteData>();

            foreach (var routeTable in RouteTables)
            {
                var fRouteDatas = routeTable.FindRouteData(formRouteData);
                result.AddRange(fRouteDatas);
            }
            return(result);
        }
Esempio n. 2
0
 /// <summary>
 /// 是否进入路由器处理
 /// </summary>
 /// <param name="formRouteData"></param>
 /// <returns></returns>
 public bool IsProcess(AbstractFormRouteData formRouteData)
 {
     foreach (var routeTable in this.RouteTables)
     {
         if (RouteFilterHelper.IsPassAllFilters(formRouteData, routeTable.RouteFilters))
         {
             return(true);
         }
     }
     return(false);
 }
Esempio n. 3
0
        /// <summary>
        /// 查找目标路由数据
        /// </summary>
        /// <param name="formRouteData">目标路由数据</param>
        /// <returns>目标路由数据集合</returns>
        internal IList <AbstractRouteData> FindRouteData(AbstractFormRouteData formRouteData)
        {
            List <AbstractRouteData> routeDatas = new List <AbstractRouteData>();

            if (RouteFilterHelper.IsNotPassAllFilters(formRouteData, this.RouteFilters))
            {
                return(routeDatas);
            }
            foreach (var routeData in this.RouteDatas)
            {
                if (routeData.IsMatch(formRouteData, this.RouteMappers))
                {
                    routeDatas.Add(routeData);
                }
            }
            return(routeDatas);
        }
Esempio n. 4
0
        /// <summary>
        /// 是否匹配源路由数据
        /// </summary>
        /// <param name="formRouteData">目标路由数据</param>
        /// <param name="tableRouteMappers">路由表映射器</param>
        /// <returns></returns>
        public bool IsMatch(AbstractFormRouteData formRouteData, IList <AbstractRouteMapper> tableRouteMappers)
        {
            if (RouteFilterHelper.IsNotPassAllFilters(formRouteData, this.RouteFilters))
            {
                return(false);
            }
            var routeMappers = new List <AbstractRouteMapper>(tableRouteMappers.Count + this.RouteMappers.Count);

            routeMappers.AddRange(this.RouteMappers);
            if (this.IsOverrideTableRouteMappers == false)
            {
                routeMappers.AddRange(tableRouteMappers);
            }
            foreach (var routeMapper in routeMappers)
            {
                if (routeMapper.IsMapping(formRouteData, this))
                {
                    return(true);
                }
            }
            return(false);
        }
Esempio n. 5
0
 /// <summary>
 /// 是否可以从源路由映射到目标路由
 /// </summary>
 public abstract bool IsMapping(AbstractFormRouteData formRouteData, AbstractRouteData routeData);
Esempio n. 6
0
 public bool IsNotPass(AbstractFormRouteData formRouteData)
 {
     return(!IsPass(formRouteData));
 }
Esempio n. 7
0
 public abstract bool IsPass(AbstractFormRouteData formRouteData);