Exemple #1
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);
                }
            }
        }
        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);
        }