public virtual void PerformRedirect(RedirectSearchData redirectSearchData, HttpContextBase httpContext)
        {
            if (redirectSearchData is null)
            {
                return;
            }
            this.sanitizer.SanitizeRedirectSearchData(redirectSearchData);

            var redirects = this.redirectSearcher.SearchRedirects(redirectSearchData)?.ToList();

            if (redirects is null || !redirects.Any())
            {
                this.logger.Debug($"No redirects found for term {redirectSearchData.SourceTerm}", this);
            }

            var redirect = this.FilterRedirects(redirects, redirectSearchData);

            if (redirect is null)
            {
                return;
            }

            var additionalTargetData = this.GetAdditionalTargetUrlData(redirectSearchData, redirect);

            this.PerformRedirect(redirect, httpContext, additionalTargetData);
        }
示例#2
0
 public virtual void SanitizeRedirectSearchData(RedirectSearchData redirectSearchData)
 {
     redirectSearchData.SourceTerm     = this.SanitizeTerm(redirectSearchData.SourceTerm);
     redirectSearchData.SiteName       = this.SanitizeSiteName(redirectSearchData.SiteName);
     redirectSearchData.SourceProtocol = this.SanitizeProtocol(redirectSearchData.SourceProtocol);
 }
 protected virtual string GetAdditionalTargetUrlData(RedirectSearchData redirectSearchData, Redirect redirect)
 {
     if (!redirect.RegexEnabled)
     {
         return(default);
 public IEnumerable <Redirect> SearchRedirects(RedirectSearchData redirectSearchData)
 {
     if (redirectSearchData is null)
     {
         return(default);