/// <summary> /// Finds the redirect. /// </summary> /// <param name="source">The source url.</param> /// <returns> /// Destination url /// </returns> public string FindRedirect(string source) { string redirectDestinationUrl = null; var useCache = cmsConfiguration.Cache.Enabled; if (urlService.ValidateInternalUrl(source)) { source = urlService.FixUrl(source); } if (useCache) { var redirects = cacheService.Get(cacheKey, cmsConfiguration.Cache.Timeout, () => redirectService.GetAllRedirects()); redirectDestinationUrl = redirects.Where(x => x.PageUrl.Equals(source, StringComparison.InvariantCultureIgnoreCase)).Select(x => x.RedirectUrl).FirstOrDefault(); } else { return(redirectService.GetRedirect(source)); } return(redirectDestinationUrl); }