/// <summary> /// Reports the specified rollbar logger. /// </summary> /// <param name="rollbarLogger">The rollbar logger.</param> /// <param name="dataObject">The data object.</param> /// <param name="rollbarError">The rollbar error.</param> /// <param name="message">The message.</param> /// <param name="exception">The exception.</param> /// <param name="errorCollector">The error collector.</param> public static void Report( IRollbar?rollbarLogger, object?dataObject, InternalRollbarError rollbarError, string?message, Exception?exception, IErrorCollector?errorCollector ) { var rollbarException = new RollbarException(rollbarError, message ?? rollbarError.ToString(), exception); errorCollector?.Register(rollbarException); var rollbarEvent = new InternalErrorEventArgs(rollbarLogger, dataObject, rollbarException, rollbarException.Message); if (rollbarLogger is RollbarLogger specificRollbarLogger) { specificRollbarLogger.OnRollbarEvent(rollbarEvent); } else { RollbarQueueController.Instance?.OnRollbarEvent(rollbarEvent); } }
/// <summary> /// Validates the specified validatable. /// </summary> /// <param name="validatable">The validatable.</param> /// <param name="errorTag">The error tag.</param> /// <param name="errorMessage">The error message.</param> public static void Validate(IValidatable?validatable, InternalRollbarError errorTag, string?errorMessage) { if (validatable != null) { var result = validatable.Validate(); if (result != null && result.Count > 0) { if (string.IsNullOrWhiteSpace(errorMessage)) { errorMessage = $"{errorTag}."; } errorMessage = $"{errorMessage}. See Data property of this exception for validation details."; RollbarException exception = new(errorTag, errorMessage); exception.Data[errorTag] = result; throw exception; } } }
/// <summary> /// Reports the specified rollbar logger. /// </summary> /// <param name="rollbarLogger">The rollbar logger.</param> /// <param name="dataObject">The data object.</param> /// <param name="rollbarError">The rollbar error.</param> /// <param name="message">The message.</param> /// <param name="exception">The exception.</param> public static void Report( RollbarLogger rollbarLogger, object dataObject, InternalRollbarError rollbarError, string message, Exception exception ) { var rollbarException = new RollbarException(rollbarError, message ?? rollbarError.ToString(), exception); var rollbarEvent = new InternalErrorEventArgs(rollbarLogger, dataObject, rollbarException, rollbarException.Message); if (rollbarLogger != null) { rollbarLogger.OnRollbarEvent(rollbarEvent); } else { RollbarQueueController.Instance.OnRollbarEvent(rollbarEvent); } }
/// <summary> /// Initializes a new instance of the <see cref="RollbarException" /> class. /// </summary> /// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"></see> that holds the serialized object data about the exception being thrown.</param> /// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"></see> that contains contextual information about the source or destination.</param> protected RollbarException(SerializationInfo info, StreamingContext context) : base(info, context) { this._rollbarError = (InternalRollbarError)(info.GetValue(nameof(this._rollbarError), typeof(InternalRollbarError)) ?? InternalRollbarError.GeneralError); }
/// <summary> /// Initializes a new instance of the <see cref="RollbarException" /> class. /// </summary> /// <param name="rollbarError">The rollbar error.</param> /// <param name="message">The message.</param> /// <param name="innerException">The inner exception.</param> internal RollbarException(InternalRollbarError rollbarError, string?message, Exception?innerException) : base(!string.IsNullOrWhiteSpace(message) ? message : rollbarError.ToString(), innerException) { this._rollbarError = rollbarError; }
/// <summary> /// Initializes a new instance of the <see cref="RollbarException"/> class. /// </summary> /// <param name="rollbarError">The rollbar error.</param> /// <param name="innerException">The inner exception.</param> internal RollbarException(InternalRollbarError rollbarError, Exception?innerException) : this(rollbarError, rollbarError.ToString(), innerException) { }
/// <summary> /// Initializes a new instance of the <see cref="RollbarException" /> class. /// </summary> /// <param name="rollbarError">The rollbar error.</param> internal RollbarException(InternalRollbarError rollbarError) : this(rollbarError, rollbarError.ToString()) { }
/// <summary> /// Initializes a new instance of the <see cref="RollbarException" /> class. /// </summary> /// <param name="rollbarError">The rollbar error.</param> /// <param name="message">The message.</param> /// <param name="innerException">The inner exception.</param> internal RollbarException(InternalRollbarError rollbarError, string message, Exception innerException) : base(message, innerException) { this._rollbarError = rollbarError; }
/// <summary> /// Initializes a new instance of the <see cref="RollbarException"/> class. /// </summary> /// <param name="rollbarError">The rollbar error.</param> /// <param name="message">The message.</param> internal RollbarException(InternalRollbarError rollbarError, string message) : base(message) { this._rollbarError = rollbarError; }