Beispiel #1
0
        private RequestContext SetupRequestContext <TResult>(AtsRequest <TResult> request, ILogger logger = null)
        {
            var operationContext = new OperationContext();

            if (logger != null)
            {
                operationContext.Retrying += (sender, args)
                                             => logger.WriteInformation(
                    args,
                    a => Strings.FormatLogRequestRetry(a.Request.RequestUri));

                operationContext.SendingRequest += (sender, args)
                                                   => logger.WriteVerbose(
                    args,
                    a => Strings.FormatLogSendingRequest(a.Request.RequestUri));

                operationContext.ResponseReceived += (sender, args)
                                                     => logger.WriteInformation(
                    args,
                    a => Strings.FormatLogResponseReceived(
                        a.Request.RequestUri, a.Response.StatusCode, a.Response.StatusDescription));

                logger.WriteInformation(request, r => Strings.FormatLogExecutingRequest(request.Name));
            }

            return(new RequestContext
            {
                OperationContext = operationContext,
                TableClient = _tableClient.Value,
                TableRequestOptions = TableRequestOptions
            });
        }
Beispiel #2
0
        public virtual TResult ExecuteRequest <TResult>([NotNull] AtsRequest <TResult> request, [CanBeNull] ILogger logger = null)
        {
            Check.NotNull(request, "request");

            var requestContext = SetupRequestContext(request, logger);

            return(request.Execute(requestContext));
        }
        private RequestContext SetupRequestContext <TResult>(AtsRequest <TResult> request, ILogger logger = null)
        {
            var operationContext = new OperationContext();

            if (logger != null)
            {
                operationContext.Retrying += (sender, args) => logger.WriteInformation(
                    String.Format("Retrying request to '{0}'", args.Request.RequestUri.ToString())
                    );

                operationContext.SendingRequest += (sender, args) =>
                                                   logger.WriteVerbose(
                    String.Format("Sending request to '{0}'", args.Request.RequestUri.ToString())
                    );
                operationContext.ResponseReceived += (sender, args) =>
                {
                    var msg = String.Format("Response from '{0}' = {1} {2}", args.Request.RequestUri.ToString(), (int)args.Response.StatusCode, args.Response.StatusDescription);
                    if (args.Response.StatusCode >= HttpStatusCode.BadRequest)
                    {
                        logger.WriteError(msg);
                    }
                    else
                    {
                        logger.WriteVerbose(msg);
                    }
                };
                logger.WriteInformation(String.Format("Executing request '{0}'", request.Name));
            }

            return(new RequestContext
            {
                OperationContext = operationContext,
                TableClient = _tableClient.Value,
                TableRequestOptions = TableRequestOptions
            });
        }