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);
        }
Esempio n. 2
0
        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
                ));
 }
Esempio n. 5
0
 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));
        }
Esempio n. 8
0
 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);
 }