private UrlRule GetRedirectCustomModuleRule(string CultureCode, int TabId, string Url)
{
Url = Url.ToLower();
UrlRule rule = null;
bool RemoveTab = TabId == Null.NullInteger;
var rules = _rules.Where(r => r.RuleType == UrlRuleType.Custom && r.IsMatchRedirectDestination(Url) && r.Action == UrlRuleAction.Rewrite /*&& r.RemoveTab == RemoveTab*/);
//with tabid
if (TabId != Null.NullInteger)
{
var tabRules = rules.Where(r => r.TabId == TabId);
rule = GetFirstRule(tabRules, CultureCode);
}
//without tabid
if (rule == null)
{
rule = GetFirstRule(rules, CultureCode);
}
if (rule != null)
{
rule = new UrlRule()
{
CultureCode = rule.CultureCode,
TabId = rule.TabId,
RuleType = rule.RuleType,
Action = UrlRuleAction.Redirect,
Url = rule.RedirectDestination,
RedirectDestination = rule.Url,
RemoveTab = rule.RemoveTab
};
}
return rule;
}