コード例 #1
0
        public void SendAnonymousReportAsync(Exception exception, string toEmail, Guid? applicationId)
        {
            _sendRequestState = new SendRequestState
            {
                AnonymousData = new AnonymousData
                {
                    Exception = exception,
                    ToEmail = toEmail,
                    ApplicationID = applicationId
                }
            };

            _uploader.SendAnonymousReportCompleted += OnSendAnonymousReportCompleted;
            _uploader.SendAnonymousReportAsync(SendRequestState.GetClientLib(), _sendRequestState.GetApplication(), _sendRequestState.GetExceptionDescription(anonymous: true), _sendRequestState);
        }
コード例 #2
0
        public void SendAnonymousReportAsync(Exception exception, string toEmail, Guid?applicationId)
        {
            _sendRequestState = new SendRequestState
            {
                AnonymousData = new AnonymousData
                {
                    Exception     = exception,
                    ToEmail       = toEmail,
                    ApplicationID = applicationId
                }
            };

            _uploader.SendAnonymousReportCompleted += OnSendAnonymousReportCompleted;
            _uploader.SendAnonymousReportAsync(SendRequestState.GetClientLib(), _sendRequestState.GetApplication(), _sendRequestState.GetExceptionDescription(anonymous: true), _sendRequestState);
        }
コード例 #3
0
        private void SendAdditionalDataAsync(Control control, SendRequestState sendRequestState)
        {
            SendRequestCompletedEventArgs e;

            try
            {
                var res = sendRequestState.SendAnonymousReportResult;
                if (res.Error != null || res.Cancelled)
                {
                    e = new SendRequestCompletedEventArgs(null, res.Error, res.Cancelled);
                }
                else
                {
                    Response response      = res.Result;
                    var      errorResponse = response as ErrorResponse;
                    if (errorResponse != null)
                    {
                        throw new Exception(errorResponse.Error);
                    }

                    if (response is NeedReportResponse)
                    {
                        _uploader.SendAdditionalDataCompleted += OnSendAdditionalDataCompleted;
                        _uploader.SendAdditionalDataAsync(response.Context,
                                                          sendRequestState.GetDetailedExceptionDescription(), sendRequestState);
                        return;
                    }

                    e = new SendRequestCompletedEventArgs(response, null, false);
                }
            }
            catch (Exception ex)
            {
                e = new SendRequestCompletedEventArgs(null, ex, false);
            }

            if (SendRequestCompleted != null)
            {
                if (control != null)
                {
                    control.BeginInvoke(SendRequestCompleted, new object[] { this, e });
                }
                else
                {
                    SendRequestCompleted.Invoke(this, e);
                }
            }
        }
コード例 #4
0
        public string SendReportSilently(Exception exception, string toEmail, Guid?applicationId, string developerMessage, string from,
                                         string userMessage, byte[] screenshot)
        {
            _sendRequestState = new SendRequestState
            {
                AnonymousData = new AnonymousData
                {
                    Exception     = exception,
                    ToEmail       = toEmail,
                    ApplicationID = applicationId
                },
                PrivateData = new PrivateData
                {
                    UserEmail        = from,
                    UserMessage      = userMessage,
                    DeveloperMessage = developerMessage,
                    Screenshot       = screenshot
                }
            };

            var response = _uploader.SendAnonymousReport(SendRequestState.GetClientLib(), _sendRequestState.GetApplication(),
                                                         _sendRequestState.GetExceptionDescription(true));

            if (response is ErrorResponse errorResponse)
            {
                throw new Exception(errorResponse.Error);
            }

            if (response is NeedReportResponse)
            {
                var additionalDataResponse = _uploader.SendAdditionalData(response.Context,
                                                                          _sendRequestState.GetDetailedExceptionDescription());
                if (additionalDataResponse is ErrorResponse errorAdditionalDataResponse)
                {
                    throw new Exception(errorAdditionalDataResponse.Error);
                }
                return(additionalDataResponse.UrlToProblem);
            }

            return(response.UrlToProblem);
        }
コード例 #5
0
        private void SendAdditionalDataAsync(Control control, SendRequestState sendRequestState)
        {
            SendRequestCompletedEventArgs e;
            try
            {
                var res = sendRequestState.SendAnonymousReportResult;
                if (res.Error != null || res.Cancelled)
                {
                    e = new SendRequestCompletedEventArgs(null, res.Error, res.Cancelled);
                }
                else
                {
                    Response response = res.Result;
                    var errorResponse = response as ErrorResponse;
                    if (errorResponse != null)
                        throw new Exception(errorResponse.Error);

                    if (response is NeedReportResponse)
                    {
                        _uploader.SendAdditionalDataCompleted += OnSendAdditionalDataCompleted;
                        _uploader.SendAdditionalDataAsync(response.Context, sendRequestState.GetDetailedExceptionDescription(), sendRequestState);
                        return;
                    }

                    e = new SendRequestCompletedEventArgs(response, null, false);
                }
            }
            catch (Exception ex)
            {
                e = new SendRequestCompletedEventArgs(null, ex, false);
            }
            if (control != null)
                control.BeginInvoke(SendRequestCompleted, new object[] { this, e });
            else
                SendRequestCompleted(this, e);
        }