コード例 #1
0
        public FileUploadJsonResult ImportRedirects(HttpPostedFileBase xmlfile)
        {
            CheckAccess();

            if (!IsXml(xmlfile))
            {
                return(new FileUploadJsonResult
                {
                    Data = new { message = LocalizationService.Current.GetString("/gadget/redirects/invalidxmlfile") }
                });
            }

            // Read all redirects from xml file
            RedirectsXmlParser parser = new RedirectsXmlParser(xmlfile.InputStream);
            // Save all redirects from xml file
            CustomRedirectCollection redirects = parser.Load();
            string message;

            if (redirects != null || redirects.Count() != 0)
            {
                _redirectsService.AddOrUpdate(redirects);
                CustomRedirectHandler.ClearCache();
                message = string.Format(LocalizationService.Current.GetString("/gadget/redirects/importsuccess"), redirects.Count());
            }
            else
            {
                message = LocalizationService.Current.GetString("/gadget/redirects/importnone");
            }
            return(new FileUploadJsonResult {
                Data = new { message = message }
            });
        }
コード例 #2
0
        public FileUploadJsonResult ImportDeleted(HttpPostedFileBase txtFile)
        {
            CheckAccess();
            var redirects = new CustomRedirectCollection();

            using (var streamReader = new StreamReader(txtFile.InputStream))
            {
                while (streamReader.Peek() >= 0)
                {
                    var url = streamReader.ReadLine();
                    if (!string.IsNullOrEmpty(url))
                    {
                        redirects.Add(new CustomRedirect
                        {
                            OldUrl = url,
                            State  = (int)DataStoreHandler.State.Deleted,
                        });
                    }
                }
            }
            string message;

            if (redirects.Count() != 0)
            {
                CustomRedirectHandler.Current.SaveCustomRedirects(redirects);
                message = string.Format(LocalizationService.Current.GetString("/gadget/redirects/importdeletedsuccess"), redirects.Count());
            }
            else
            {
                message = LocalizationService.Current.GetString("/gadget/redirects/importnone");
            }
            return(new FileUploadJsonResult {
                Data = new { message = message }
            });
        }
コード例 #3
0
        public void Find_finds_most_specific_redirect_when_not_found_url_starts_with_stored_url()
        {
            var collection = new CustomRedirectCollection
            {
                new CustomRedirect("/oldsegment1/", "/newsegment1/"),
                new CustomRedirect("/oldsegment1/oldsegment2/", "/newsegment1/newsegment2/"),
            };

            var urlToFind = "/oldsegment1/oldsegment2/?test=q";
            var expected  = "/newsegment1/newsegment2/?test=q";

            var actual = collection.Find(urlToFind.ToUri());

            Assert.Equal(expected, actual.NewUrl);
        }
コード例 #4
0
        public void Find_does_not_add_slash_when_querystring_parameters()
        {
            var collection = new CustomRedirectCollection
            {
                new CustomRedirect("/content/file", "/legacy"),
                new CustomRedirect("/content/file/", "/legacy/")
            };

            var urlToFind = "/content/file?doc=filename&param2=value";
            var expected  = "/legacy?doc=filename&param2=value";

            var actual = collection.Find(urlToFind.ToUri());

            Assert.Equal(expected, actual.NewUrl);
        }
コード例 #5
0
        public FileUploadJsonResult ImportRedirects(HttpPostedFileBase xmlfile)
        {
            CheckAccess();
            // Read all redirects from xml file
            RedirectsXmlParser parser = new RedirectsXmlParser(xmlfile.InputStream);
            // Save all redirects from xml file
            CustomRedirectCollection redirects = parser.Load(0);
            string message;

            if (redirects != null && redirects.Count != 0)
            {
                CustomRedirectHandler.Current.SaveCustomRedirects(redirects);
                message = string.Format(LocalizationService.Current.GetString("/gadget/redirects/importsuccess"), redirects.Count);
            }
            else
            {
                message = LocalizationService.Current.GetString("/gadget/redirects/importnone");
            }
            return(new FileUploadJsonResult {
                Data = new { message }
            });
        }
コード例 #6
0
 public CustomRedirectCollectionTests()
 {
     _configuration = A.Fake <IConfiguration>();
     _sut           = new CustomRedirectCollection(_configuration);
 }