private void OnCopyLinkButtonClick(object sender, RoutedEventArgs e) { try { Cursor = Cursors.Wait; Settings.Default.UserDomain = _domain.Text; Settings.Default.UserLogin = _login.Text; Settings.Default.UserPassword = _password.Password; var credentials = new NetworkCredential(Settings.Default.UserLogin, Settings.Default.UserPassword, Settings.Default.UserDomain); var result = LinkReplacer.IdToLink(_taskIdTextBox.Text, new Tfs2015Service(new Uri(Settings.Default.TfsAddress), credentials), new Uri(Settings.Default.TfsAddress)); if (result.IsSuccess) { var obj = new DataObject(); obj.SetData(DataFormats.Html, new MemoryStream(Encoding.Default.GetBytes(result.Data))); Clipboard.SetDataObject(obj, true); Settings.Default.Save(); } else { App.ShowError(result.Exception); } } finally { Cursor = null; } }
/// <summary> /// Start downloading page in new thread /// </summary> /// <param name="_pageUrl">Url of page</param> private async void StartDownloadingPage(object _pageUrl) { string pageUrl = (string)_pageUrl; string loadUrl = LinkNormalization.NormalizeUrl(pageUrl, Domain); //Normalize pages url var filePath = LinkNormalization.GetFilePathFromUrl(pageUrl, Domain); //Get path of file to save this page if (!Directory.Exists(Path.GetDirectoryName(filePath))) { Directory.CreateDirectory(Path.GetDirectoryName(filePath)); } var webClient = new WebClient() { Encoding = Encoding.UTF8 }; if (filePath.EndsWith(".htm") || filePath.EndsWith(".html")) //If this page is any HTML-page { try { var html = await webClient.DownloadStringTaskAsync(loadUrl); //Download page (get HTML) var links = new LinkExtractor(html, Domain).StartExtract(); //Get all link in this HTML of page File.WriteAllText(filePath, LinkReplacer.Replace(html, links, Domain)); //Save this page to disk and replace all links SetPageDownloaded(pageUrl); foreach (var link in links) //Check, if link already in our lists of pages { if (downloadedPages.Contains(link) == false && pagesToDownloading.Contains(link) == false && downloadingPages.Contains(link) == false && pagesWithError.Contains(link) == false) { pagesToDownloading.Add(link); } } } catch (Exception ex) { SetPageError(pageUrl); OnError($"{DateTime.Now.ToString("HH:mm:ss.fff")}: {pageUrl} | ERROR [{ex.Message}]"); } } else //If this page is any file (image, css, js, ...) { try { await webClient.DownloadFileTaskAsync(loadUrl, filePath); //Download and save file SetPageDownloaded(pageUrl); } catch (Exception ex) { SetPageError(pageUrl); OnError($"{DateTime.Now.ToString("HH:mm:ss.fff")}: {pageUrl} | ERROR [{ex.Message}]"); } } }
public void IdToLinkTest() { var task = new Task { Id = "123", Name = "Тест" }; var taskService = MockRepository.GenerateStub <ITaskService>(); taskService .Expect(ts => ts.GetTask(Arg <string> .Is.Anything)) .Return(ActionResult <Task> .Success(task)); var baseUri = new Uri("http://tfs4alm10v:8080/tfs/TFS2005%20-%20upgraded%20Projects/"); var idToLinkResult = LinkReplacer.IdToLink("123", taskService, baseUri); var result = idToLinkResult.Data; Assert.IsTrue(result.Contains("123")); }
private void OnJobClick(object sender, RoutedEventArgs e) { Settings.Default.UserDomain = _domain.Text; Settings.Default.UserLogin = _login.Text; Settings.Default.UserPassword = _password.Password; var credentials = new NetworkCredential(Settings.Default.UserLogin, Settings.Default.UserPassword, Settings.Default.UserDomain); var taskSelector = new SimpleTaskSelector(new [] { "1", "2", "3" }); var processor = new LinkReplacer(new Tfs2015Service(new Uri(Settings.Default.TfsAddress), credentials)); var job = new Job(taskSelector, processor); var jobResult = job.Run(); if (!jobResult.IsSuccess) { App.ShowError(new Exception(jobResult.Error)); } else { Settings.Default.Save(); } }
public void TestMethod1() { var result = LinkReplacer.ReplaceLinks(TestData.Before_1); Assert.AreEqual(TestData.After_1, result); }