internal IssueRegistrationStartedEventArgs(IssueRequest request)
 {
     Request = request;
 }
Beispiel #2
0
        private IssueRequest PrepareIssueData(string sessionKey, string message, MessageIssueLevel issueLevel, string userHandle, IDictionary<string, string> data)
        {
            var issueType = new IssueTypeData
                                {
                                    Message = message,
                                    InnerIssueTypes = null,
                                    StackTrace = null,
                                    Type = "Message",
                                    Data = data
                                };

            var issueData = new IssueRequest
                                {
                                    UserHandle = userHandle,
                                    ClientTime = DateTime.UtcNow,
                                    IssueKey = Guid.NewGuid(),
                                    IssueThreadKey = null,
                                    IssueType = issueType,
                                    IssueLevel = issueLevel.ToString(),
                                    SessionKey = sessionKey,                                    
                                };

            return issueData;
        }
Beispiel #3
0
        private async Task<IssueResult> RegisterEx(bool doThrow, IssueRequest request)
        {
            if (string.IsNullOrEmpty(request.SessionKey))
                throw new ArgumentException("No SessionKey has been assigned.");

            var result = new IssueResult();
            IssueResponse response = null;

            try
            {
                OnIssueRegistrationStartedEvent(new IssueRegistrationStartedEventArgs(request));

                response = await _sessionHandler.Client.WebApiClient.CreateAsync<IssueRequest, IssueResponse>("Client/Issue", request);
            }
            catch (Exception exception)
            {
                result.SetException(exception);
                _issuesThatFailedToRegister.Enqueue(new Tuple<IssueRequest, Exception>(request, exception));

                if (doThrow)
                    throw;
            }
            finally
            {
                result.SetCompleted(response);
                OnIssueRegistrationCompletedEvent(new IssueRegistrationCompletedEventArgs(request, result));
            }

            return result;
        }
Beispiel #4
0
        private IssueRequest PrepareIssueData(string sessionKey, Exception exception, ExceptionIssueLevel issueLevel, string userHandle)
        {
            var level = issueLevel.ToString();
            var issueType = CreateIssueTypeData(exception);

            var issueData = new IssueRequest
                                {
                                    IssueLevel = level,
                                    UserHandle = userHandle,
                                    ClientTime = DateTime.UtcNow,
                                    IssueKey = Guid.NewGuid(),
                                    IssueThreadKey = HandleIssueThreadKey(exception),
                                    IssueType = issueType,
                                    SessionKey = sessionKey,                                    
                                };

            return issueData;
        }
 internal IssueRegistrationCompletedEventArgs(IssueRequest request, IssueResult result)
 {
     Request = request;
     Result = result;
 }