Пример #1
0
        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;
            }
        }
Пример #2
0
        /// <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}]");
                }
            }
        }
Пример #3
0
        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"));
        }
Пример #4
0
        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();
            }
        }
Пример #5
0
        public void TestMethod1()
        {
            var result = LinkReplacer.ReplaceLinks(TestData.Before_1);

            Assert.AreEqual(TestData.After_1, result);
        }