Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions LinkCrawler/LinkCrawler/LinkCrawler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
});
}
Expand Down
5 changes: 4 additions & 1 deletion LinkCrawler/LinkCrawler/Models/RequestModel.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using RestSharp;
using System.Diagnostics;
using RestSharp;

namespace LinkCrawler.Models
{
Expand All @@ -8,13 +9,15 @@ 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)
{
Url = url;
IsInternalUrl = url.StartsWith(baseUrl);
ReferrerUrl = referrerUrl;
Client = new RestClient(Url);
StopWatch = new Stopwatch();
}
}
}
3 changes: 2 additions & 1 deletion LinkCrawler/LinkCrawler/Models/ResponseModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand All @@ -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());
}
}
}