public static SiteNode GetFilledSiteNode(string rootUri, IHttpResponseProvider httpResponseProvider) { var rootNode = new SiteNode(rootUri); if (UriHelper.IsMediaFile(rootUri)) { try { rootNode.Media = httpResponseProvider.RequestLinkBytes(rootUri); _performanceHelper.Increment(Counters.SuccessfullHttpRequests); } catch { rootNode.Media = new byte[0]; _performanceHelper.Increment(Counters.FailedHttpRequests); } } else { try { rootNode.Html = httpResponseProvider.RequestHttpLayout(rootUri); _performanceHelper.Increment(Counters.SuccessfullHttpRequests); } catch { rootNode.Html = string.Empty; _performanceHelper.Increment(Counters.FailedHttpRequests); } } NLogger.Logger.Info($"{rootUri} has been handled."); return(rootNode); }
public SiteCopyingManager(IHttpResponseProvider httpResponseProvider, IHtmlCrawler htmlCrawler, bool turnVerboseOn = true) { _httpResponseProvider = httpResponseProvider ?? throw new ArgumentNullException(nameof(httpResponseProvider)); _htmlCrawler = htmlCrawler ?? throw new ArgumentNullException(nameof(_htmlCrawler)); _verboseOn = turnVerboseOn; }
public static SiteNode GetFilledSiteNode(string rootUri, IHttpResponseProvider httpResponseProvider) { var rootNode = new SiteNode(rootUri); if (UriHelper.IsMediaFile(rootUri)) { try { rootNode.Media = httpResponseProvider.RequestLinkBytes(rootUri); } catch { rootNode.Media = new byte[0]; } } else { try { rootNode.Html = httpResponseProvider.RequestHttpLayout(rootUri); } catch { rootNode.Html = string.Empty; } } return(rootNode); }
internal Task <ComplexServerResponse <TOutput, TError> > ExecuteRequestAsync <TOutput, TOutputgen, TError, TErrorgen>( string command, IHttpResponseProvider input, Func <HttpStatusCode, bool> isRequestSuccessullPredicate) where TOutputgen : IOutputHttpContent <TOutput>, new() where TErrorgen : IOutputHttpContent <TError>, new() { return(ExecuteRequestAsyncCore <TOutput, TOutputgen, TError, TErrorgen>( URL, command, input, _credentials, _configuration, isRequestSuccessullPredicate )); }
protected T ExecuteHttp <T, TContent, TError, TErrorContent>(IHttpResponseProvider http, String command, Func <HttpStatusCode, bool> isSuccessful = null) where TContent : IOutputHttpContent <T>, new() where TErrorContent : IOutputHttpContent <TError>, new() { using (var request = Server.ExecuteRequestAsync <T, TContent, TError, TErrorContent>(command, http, isSuccessful ?? DeployitServer.CheckIfStatusCodeIsOK)) { request.Wait(); var response = request.Result; EnsureServerResponseIsOK(response); return(response.Data); } }
private static Task <ComplexServerResponse <TOutput, TError> > ExecuteRequestAsyncCore <TOutput, TOutputgen, TError, TErrorgen>( Uri uri, string command, IHttpResponseProvider input, NetworkCredential credentials, DeployitServerConfig configuration, Func <HttpStatusCode, bool> isRequestSuccessful) where TOutputgen : IOutputHttpContent <TOutput>, new() where TErrorgen : IOutputHttpContent <TError>, new() { if (uri == null) { throw new ArgumentNullException("uri", "uri is null."); } if (String.IsNullOrEmpty(command)) { throw new ArgumentException("command is null or empty.", "command"); } var client = CreateHttpClient(credentials, configuration); var request = BuildUrl(uri, command); return(input.GetTask(client, request).ContinueWith(requestTask => { try { var statusCode = requestTask.Result.StatusCode; if (isRequestSuccessful != null && isRequestSuccessful(statusCode)) { var output = new TOutputgen().Deserialize(requestTask.Result.Content); return new ComplexServerResponse <TOutput, TError>(statusCode, true, output, default(TError)); } else { var error = new TErrorgen().Deserialize(requestTask.Result.Content); return new ComplexServerResponse <TOutput, TError>(statusCode, false, default(TOutput), error); } } finally { client.Dispose(); } }, TaskContinuationOptions.OnlyOnRanToCompletion)); }
private Deployment RetrieveDeployment(IHttpResponseProvider http, String urlTemplate, params Object[] args) { var command = BuildCommand(urlTemplate, args); return(ExecuteHttp <Deployment, UDMHttpContent <Deployment>, string, StringHttpContent>(http, command)); }
public GitHubHttpClientHelper(IHttpResponseProvider httpReponseProvider) { _httpReponseProvider = httpReponseProvider; }
private Deployment RetrieveDeployment(IHttpResponseProvider http, String urlTemplate, params Object[] args) { var command = BuildCommand(urlTemplate, args); return ExecuteHttp<Deployment, UDMHttpContent<Deployment>, string, StringHttpContent>(http, command); }