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 } }); }
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 } }); }
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); }
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¶m2=value"; var expected = "/legacy?doc=filename¶m2=value"; var actual = collection.Find(urlToFind.ToUri()); Assert.Equal(expected, actual.NewUrl); }
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 } }); }
public CustomRedirectCollectionTests() { _configuration = A.Fake <IConfiguration>(); _sut = new CustomRedirectCollection(_configuration); }