Exemple #1
0
        /// <summary>
        /// Packages as payload body.
        /// </summary>
        /// <param name="bodyObject">The body object.</param>
        /// <param name="custom">The custom.</param>
        /// <returns>Body.</returns>
        public static Body PackageAsPayloadBody(object bodyObject, ref IDictionary <string, object> custom)
        {
            System.Exception exception = bodyObject as System.Exception;
            if (exception != null)
            {
                RollbarUtility.SnapExceptionDataAsCustomData(exception, ref custom);
                return(new Body(exception));
            }

            string messageString = bodyObject as string;

            if (messageString != null)
            {
                return(new Body(new Message(messageString)));
            }

            ITraceable traceable = bodyObject as ITraceable;

            if (traceable != null)
            {
                return(new Body(traceable.TraceAsString()));
            }

            return(new Body(new Message(bodyObject.ToString())));
        }
        /// <summary>
        /// Produces the rollbar data.
        /// </summary>
        /// <returns>Rollbar Data DTO or null (if packaging is not applicable in some cases).</returns>
        protected override Data ProduceRollbarData()
        {
            Body rollbarBody = new Body(this._exceptionToPackage);
            IDictionary <string, object?>?custom = null;

            RollbarUtility.SnapExceptionDataAsCustomData(this._exceptionToPackage, ref custom);
            Data rollbarData = new Data(rollbarBody, custom);

            rollbarData.Title = this._rollbarDataTitle;

            return(rollbarData);
        }