internal RaygunFeatureUsageTrackingSession( string featureName, Guid parentReference, RaygunClient raygunClient, RaygunSettings raygunSettings) { if (string.IsNullOrWhiteSpace(featureName)) { throw new ArgumentNullException(nameof(featureName)); } _raygunClient = raygunClient; _raygunSettings = raygunSettings; ParentReference = parentReference; FeatureName = featureName; FeatureReference = Guid.NewGuid(); var userCustomData = new Dictionary <string, string> { { "EventType", "FeatureUsage" }, { "EventReference", FeatureReference.ToString() }, { "ParentReference", parentReference.ToString() } }; // keep an eye on // https://raygun.com/forums/thread/92182 #if NETSTANDARD2_0 || NET5_0 var messageBuilder = RaygunMessageBuilder.New(raygunSettings) #else var messageBuilder = RaygunMessageBuilder.New #endif .SetClientDetails() .SetEnvironmentDetails() .SetUserCustomData(userCustomData); var raygunMessage = messageBuilder.Build(); _raygunClient.SendInBackground(raygunMessage); }
protected override async Task <RaygunMessage> BuildMessage(Exception exception, IList <string> tags, IDictionary userCustomData, RaygunIdentifierMessage userInfoMessage) { var message = RaygunMessageBuilder.New(GetSettings()) .SetResponseDetails(_currentResponseMessage.Value) .SetRequestDetails(_currentRequestMessage.Value) .SetEnvironmentDetails() .SetMachineName(Environment.MachineName) .SetExceptionDetails(exception) .SetClientDetails() .SetVersion(ApplicationVersion) .SetTags(tags) .SetUserCustomData(userCustomData) .SetUser(userInfoMessage ?? UserInfo ?? (!String.IsNullOrEmpty(User) ? new RaygunIdentifierMessage(User) : null)) .Build(); var customGroupingKey = await OnCustomGroupingKey(exception, message); if (string.IsNullOrEmpty(customGroupingKey) == false) { message.Details.GroupingKey = customGroupingKey; } return(message); }
public void SetUp() { _settings = new RaygunSettings(); _builder = RaygunMessageBuilder.New(_settings); }