示例#1
0
        public override void Build(
            IRedirectProcessingResult redirectProcessingResult)
        {
            foreach (var processedRedirect in redirectProcessingResult.ProcessedRedirects.ToList())
            {
                var outputRedirect = _outputRedirectBuilder
                                     .Build(processedRedirect);

                if (!outputRedirect.ValidMatchingOriginalNewUrl &&
                    !outputRedirect.ValidNotMatchingOriginalNewUrl)
                {
                    continue;
                }

                if (!outputRedirect.ValidMatchingOriginalNewUrl &&
                    outputRedirect.ValidNotMatchingOriginalNewUrl &&
                    !_includeNotMatchingNewUrl)
                {
                    continue;
                }

                var record = new OutputRedirectRecord
                {
                    OldUrl = outputRedirect.OldUrl,
                    NewUrl = outputRedirect.NewUrl
                };

                if (processedRedirect.ParsedRedirect != null)
                {
                    if (processedRedirect.ParsedRedirect.OldUrl != null)
                    {
                        record.OriginalOldUrl =
                            FormatRawUrl(processedRedirect.ParsedRedirect.OldUrl);
                        record.OldUrlHasHost             =
                            record.OriginalOldUrlHasHost =
                                processedRedirect.ParsedRedirect.OldUrl.Parsed.OriginalUrlHasHost;
                        record.ParsedOldUrl =
                            FormatParsedUrl(processedRedirect.ParsedRedirect.OldUrl);
                    }

                    if (processedRedirect.ParsedRedirect.NewUrl != null)
                    {
                        record.OriginalNewUrl =
                            FormatRawUrl(processedRedirect.ParsedRedirect.NewUrl);
                        record.NewUrlHasHost             =
                            record.OriginalNewUrlHasHost =
                                processedRedirect.ParsedRedirect.NewUrl.Parsed.OriginalUrlHasHost;
                        record.ParsedNewUrl =
                            FormatParsedUrl(processedRedirect.ParsedRedirect.NewUrl);
                    }
                }

                _records.Add(record);
            }
        }
示例#2
0
        private void AddOutputRedirectUrls(
            IProcessedRedirect processedRedirect,
            ProcessedRedirectRecord processedRedirectRecord)
        {
            var outputRedirect = _outputRedirectBuilder.Build(
                processedRedirect);

            processedRedirectRecord.OutputRedirectOldUrl =
                outputRedirect.OldUrl;
            processedRedirectRecord.OutputRedirectNewUrl =
                outputRedirect.NewUrl;
            processedRedirectRecord.OutputRedirectValidMatchingOriginalNewUrl =
                outputRedirect.ValidMatchingOriginalNewUrl;
            processedRedirectRecord.OutputRedirectValidNotMatchingOriginalNewUrl =
                outputRedirect.ValidNotMatchingOriginalNewUrl;
        }