Beispiel #1
0
 public Url(Uri u, int d, UrlStatus s)
 {
     uri    = u;
     depth  = d;
     status = s;
     link   = uri.AbsoluteUri.ToLower();
 }
Beispiel #2
0
        public void Dictionary_Object_UrlStatus()
        {
            var urlStatus = new UrlStatus {
                Status = 301,
                Url    = "http://www.ehow.com/how_5615409_create-pdfs-using-bean.html",
            };

            var map = new Dictionary <string, object>
            {
                { "Status", "OK" },
                { "Url", "http://www.ehow.com/m/how_5615409_create-pdfs-using-bean.html" },
                { "Parent Url", "http://www.ehow.com/mobilearticle35.xml" },
                { "Redirect Chai", urlStatus },
            };

            var json     = JsonSerializer.SerializeToString(map);
            var fromJson = JsonSerializer.DeserializeFromString <Dictionary <string, object> >(json);

            Assert.That(fromJson["Status"], Is.EqualTo(map["Status"]));
            Assert.That(fromJson["Url"], Is.EqualTo(map["Url"]));
            Assert.That(fromJson["Parent Url"], Is.EqualTo(map["Parent Url"]));

            var actualStatus = (UrlStatus)fromJson["Redirect Chai"];

            Assert.That(actualStatus.Status, Is.EqualTo(urlStatus.Status));
            Assert.That(actualStatus.Url, Is.EqualTo(urlStatus.Url));

            Console.WriteLine("JSON: " + json);
        }
		public void Dictionary_Object_UrlStatus()
		{
			var urlStatus = new UrlStatus {
				Status = 301,
				Url = "http://www.ehow.com/how_5615409_create-pdfs-using-bean.html",
			};

			var map = new Dictionary<string, object>
          	{
          		{"Status","OK"},
          		{"Url","http://www.ehow.com/m/how_5615409_create-pdfs-using-bean.html"},
          		{"Parent Url","http://www.ehow.com/mobilearticle35.xml"},
          		{"Redirect Chai", urlStatus},
          	};

			var json = JsonSerializer.SerializeToString(map);
			var fromJson = JsonSerializer.DeserializeFromString<Dictionary<string, object>>(json);

			Assert.That(fromJson["Status"], Is.EqualTo(map["Status"]));
			Assert.That(fromJson["Url"], Is.EqualTo(map["Url"]));
			Assert.That(fromJson["Parent Url"], Is.EqualTo(map["Parent Url"]));

			var actualStatus = (UrlStatus)fromJson["Redirect Chai"];
			Assert.That(actualStatus.Status, Is.EqualTo(urlStatus.Status));
			Assert.That(actualStatus.Url, Is.EqualTo(urlStatus.Url));

			Console.WriteLine("JSON: " + json);
		}
Beispiel #4
0
        /// <summary>
        /// Updates the status of an Asset, moving it from one list to another.
        /// </summary>
        /// <param name="asset">Asset to be updated</param>
        /// <param name="new_status">New status to be assigned</param>
        /// <returns>False if the Asset already has the new status. True if new status assigned.</returns>
        public bool UpdateStatus(Asset asset, UrlStatus new_status)
        {
            Block();

            StatusReport report;

            if (asset.final_url != null)
            {
                report = IntrCheckAsset(asset.final_url);

                if (report.url_status == UrlStatus.Free)
                {
                    report = IntrCheckAsset(asset.org_url);
                }
            }
            else
            {
                report = IntrCheckAsset(asset.org_url);
            }

            if (report.url_status == new_status)
            {
                Release();
                return(false);
            }

            switch (report.url_status)
            {
            case UrlStatus.Iprg:
                assets_iprg.RemoveAt(report.index);
                break;

            case UrlStatus.Saved:
                assets_saved.RemoveAt(report.index);
                break;

            case UrlStatus.Failed:
                assets_failed.RemoveAt(report.index);
                break;
            }

            switch (new_status)
            {
            case UrlStatus.Iprg:
                assets_iprg.Add(asset);
                break;

            case UrlStatus.Saved:
                assets_saved.Add(asset);
                break;

            case UrlStatus.Failed:
                assets_failed.Add(asset.org_url.str);
                break;
            }

            Release();
            return(true);
        }
 /// <summary>
 /// 改变状态
 /// </summary>
 /// <param name="index">初始长度</param>
 /// <param name="length"></param>
 /// <param name="status"></param>
 private void _changedStatus(int index, int length, UrlStatus status)
 {
     lock (_object)
     {
         Application.Current.Dispatcher.Invoke(() =>
         {
             for (var i = 0; i < length; i++)
             {
                 UrlsList[index + i].Status = status;
             }
         });
     }
 }
Beispiel #6
0
 public UrlItem(string url, int depth, UrlStatus status)
 {
     Depth   = depth;
     Url     = url;
     _status = status;
 }
Beispiel #7
0
        /// <summary>
        /// Updates the status of an Page, moving it from one list to another.
        /// </summary>
        /// <param name="page">Page to be updated</param>
        /// <param name="new_status">New status to be assigned</param>
        /// <returns>False if the Page already has the new status. True if new status assigned.</returns>
        public bool UpdateStatus(Page page, UrlStatus new_status)
        {
            StatusReport report;

            Block();

            if (page.final_url != null)
            {
                report = IntrCheckLink(page.final_url);

                if (report.url_status == UrlStatus.Free)
                {
                    report = IntrCheckLink(page.org_url);
                }
            }
            else
            {
                report = IntrCheckLink(page.org_url);
            }

            if (report.url_status == new_status)
            {
                Release();
                return(false);
            }

            switch (report.url_status)
            {
            case UrlStatus.ToDo:
                links_todo.RemoveAt(report.index);
                break;

            case UrlStatus.Iprg:
                links_iprg.RemoveAt(report.index);
                break;

            case UrlStatus.Saved:
                links_saved.RemoveAt(report.index);
                break;

            case UrlStatus.Failed:
                links_failed.RemoveAt(report.index);
                break;
            }

            switch (new_status)
            {
            case UrlStatus.ToDo:
                links_todo.Add(page);
                NewWork.Invoke(page);
                break;

            case UrlStatus.Iprg:
                links_iprg.Add(page);
                break;

            case UrlStatus.Saved:
                links_saved.Add(page);
                break;

            case UrlStatus.Failed:
                links_failed.Add(page.org_url.str);
                break;
            }
            Release();
            return(true);
        }