Ejemplo n.º 1
0
        protected override void IndexUrlDomain(IParsedRedirect parsedRedirect)
        {
            if (_urlDomainsIndex.Contains(
                    parsedRedirect.NewUrl.Parsed.Host))
            {
                return;
            }

            _urlDomainsIndex.Add(
                parsedRedirect.NewUrl.Parsed.Host);
        }
Ejemplo n.º 2
0
        public string Replace(string url, IParsedRedirect parsedRedirect)
        {
            var parsedUrl = _urlParser.Parse(
                url,
                _configuration.DefaultUrl);

            var oldUrlSegments = parsedUrl.Path.Split('/');
            var newUrlSegments = parsedRedirect.NewUrl.Parsed.Path.Split('/');

            var replacedUrlSegments = newUrlSegments.Concat(
                oldUrlSegments
                .Skip(newUrlSegments.Length)
                .Take(oldUrlSegments.Length - newUrlSegments.Length));

            var replacedPath = string.Join(
                "/",
                replacedUrlSegments);

            parsedUrl.Path = replacedPath;

            return(_urlFormatter.Format(parsedUrl));
        }
 protected abstract void IndexUrlDomain(
     IParsedRedirect parsedRedirect);