/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <summary> /// 是否可以从源路由映射到目标路由 /// </summary> public abstract bool IsMapping(AbstractFormRouteData formRouteData, AbstractRouteData routeData);
public bool IsNotPass(AbstractFormRouteData formRouteData) { return(!IsPass(formRouteData)); }
public abstract bool IsPass(AbstractFormRouteData formRouteData);