Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 public void SetUp()
 {
     _settings = new RaygunSettings();
     _builder  = RaygunMessageBuilder.New(_settings);
 }