/// <summary> /// Initializes a new instance of the <see cref="RollbarHttpContextPackageDecorator"/> class. /// </summary> /// <param name="packageToDecorate">The package to decorate.</param> /// <param name="rollbarHttpContext">The rollbar HTTP context.</param> public RollbarHttpContextPackageDecorator( IRollbarPackage packageToDecorate, RollbarHttpContext rollbarHttpContext ) : this(packageToDecorate, rollbarHttpContext, false) { }
/// <summary> /// Initializes a new instance of the <see cref="RollbarHttpContextPackageDecorator"/> class. /// </summary> /// <param name="packageToDecorate">The package to decorate.</param> /// <param name="rollbarHttpContext">The rollbar HTTP context.</param> /// <param name="mustApplySynchronously">if set to <c>true</c> [must apply synchronously].</param> public RollbarHttpContextPackageDecorator( IRollbarPackage packageToDecorate, RollbarHttpContext rollbarHttpContext, bool mustApplySynchronously ) : base(packageToDecorate, mustApplySynchronously) { this._rollbarHttpContext = rollbarHttpContext; }
/// <summary> /// Extracts the custom request fields. /// </summary> /// <param name="rollbarHttpContext"> /// The rollbar HTTP context. /// </param> /// <returns> /// Dictionary<System.String, System.Nullable<System.Object>>. /// </returns> private static Dictionary <string, object?> ExtractCustomRequestFields(RollbarHttpContext rollbarHttpContext) { Dictionary <string, object?> customRequestFields = new(); customRequestFields.Add("httpRequestTimestamp", rollbarHttpContext.Timestamp); if (rollbarHttpContext.HttpAttributes != null) { customRequestFields.Add("httpRequestID", rollbarHttpContext.HttpAttributes.RequestID); customRequestFields.Add("scheme", rollbarHttpContext.HttpAttributes.RequestScheme); customRequestFields.Add("protocol", rollbarHttpContext.HttpAttributes.RequestProtocol); customRequestFields.Add("statusCode", rollbarHttpContext.HttpAttributes.ResponseStatusCode); } return(customRequestFields); }