From f4f3b35822d3abe3bf9c8bc47a95f19f207a82f7 Mon Sep 17 00:00:00 2001 From: Yash Date: Sat, 9 Jul 2016 13:08:06 -0700 Subject: [PATCH] Writing ElapsedTime in the Console Output. --- LinkCrawler/LinkCrawler/LinkCrawler.cs | 12 ++++++++---- LinkCrawler/LinkCrawler/Models/RequestModel.cs | 5 ++++- LinkCrawler/LinkCrawler/Models/ResponseModel.cs | 3 ++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/LinkCrawler/LinkCrawler/LinkCrawler.cs b/LinkCrawler/LinkCrawler/LinkCrawler.cs index 04ffad1..304d419 100644 --- a/LinkCrawler/LinkCrawler/LinkCrawler.cs +++ b/LinkCrawler/LinkCrawler/LinkCrawler.cs @@ -42,13 +42,17 @@ public void SendRequest(string crawlUrl, string referrerUrl = "") { var requestModel = new RequestModel(crawlUrl, referrerUrl, BaseUrl); var restClient = new RestClient(new Uri(crawlUrl)) { FollowRedirects = false }; - - restClient.ExecuteAsync(RestRequest, response => + requestModel.StopWatch.Start(); + var x = restClient.ExecuteAsync(RestRequest, response => { if (response == null) return; - - var responseModel = new ResponseModel(response, requestModel, _settings); + requestModel.StopWatch.Stop(); + var elapsedTimeSpan = requestModel.StopWatch.Elapsed; + var responseModel = new ResponseModel(response, requestModel, _settings) + { + ElapsedTimeSpan = elapsedTimeSpan + }; ProcessResponse(responseModel); }); } diff --git a/LinkCrawler/LinkCrawler/Models/RequestModel.cs b/LinkCrawler/LinkCrawler/Models/RequestModel.cs index 5015004..ff977d1 100644 --- a/LinkCrawler/LinkCrawler/Models/RequestModel.cs +++ b/LinkCrawler/LinkCrawler/Models/RequestModel.cs @@ -1,4 +1,5 @@ -using RestSharp; +using System.Diagnostics; +using RestSharp; namespace LinkCrawler.Models { @@ -8,6 +9,7 @@ public class RequestModel public string ReferrerUrl; public bool IsInternalUrl { get; set; } public RestClient Client; + public Stopwatch StopWatch; public RequestModel(string url, string referrerUrl, string baseUrl) { @@ -15,6 +17,7 @@ public RequestModel(string url, string referrerUrl, string baseUrl) IsInternalUrl = url.StartsWith(baseUrl); ReferrerUrl = referrerUrl; Client = new RestClient(Url); + StopWatch = new Stopwatch(); } } } diff --git a/LinkCrawler/LinkCrawler/Models/ResponseModel.cs b/LinkCrawler/LinkCrawler/Models/ResponseModel.cs index f75cc63..a3ce26e 100644 --- a/LinkCrawler/LinkCrawler/Models/ResponseModel.cs +++ b/LinkCrawler/LinkCrawler/Models/ResponseModel.cs @@ -16,6 +16,7 @@ public class ResponseModel : IResponseModel public int StatusCodeNumber { get { return (int)StatusCode; } } public bool IsSuccess { get; } public bool ShouldCrawl { get; } + public TimeSpan ElapsedTimeSpan { get; set; } public ResponseModel(IRestResponse restResponse, RequestModel requestModel, ISettings settings) { @@ -34,7 +35,7 @@ public override string ToString() if (!IsSuccess) return string.Format("{0}\t{1}\t{2}{3}\tReferer:\t{4}", StatusCodeNumber, StatusCode, RequestedUrl, Environment.NewLine, ReferrerUrl); - return string.Format("{0}\t{1}\t{2}", StatusCodeNumber, StatusCode, RequestedUrl); + return string.Format("{0}\t{1}\t{2}\t{3}", StatusCodeNumber, StatusCode, RequestedUrl, ElapsedTimeSpan.ToString()); } } } \ No newline at end of file