/// <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);
        }