コード例 #1
0
        public Guid Send()
        {
            ProductManagerClient pm = HalanServices.CreateProductManager();

              try {
            Guid id = Guid.NewGuid();
            ErrorReportRequest req = new ErrorReportRequest();
            req.Reference = id.ToString();
            req.Message = _error.Message;
            if( _error.Exception != null ) {
              Exception e = _error.Exception;
              ErrorReportException errorRepExcept = new ErrorReportException();
              req.Exception = errorRepExcept;
              while( e != null ) {
            errorRepExcept.Message = e.Message;
            errorRepExcept.StackTrace = e.StackTrace;
            errorRepExcept.Source = e.Source;
            errorRepExcept.Type = e.GetType().ToString();

            e = e.InnerException;
            if( e != null ) {
              errorRepExcept.InnerException = new ErrorReportException();
              errorRepExcept = errorRepExcept.InnerException;
            }
              }
            }

            req.ProductName = _appData.Product;
            req.ProductVersion = _appData.Version.ToString(4);
            req.DotNetFrameworkVersion = Environment.Version.ToString();
            req.OperatingSystem = Environment.OSVersion.VersionString;
            req.ReportID = Tools.EncryptSimple(_appData.Id);

            if( _managerState != null && _managerState.Length > 0 )
              req.ManagerState = Tools.EncryptSimple(_managerState.Concat(" "));

            ErrorReportResponse resp = pm.ReportError(req);

            if( !resp.Successful )
              throw new FailedToSendErrorReportException(resp.Message);

            return id;

              } finally {
            pm.Close();
              }
        }
コード例 #2
0
 /// <remarks/>
 public void ReportErrorAsync(ErrorReportRequest request, object userState) {
     if ((this.ReportErrorOperationCompleted == null)) {
         this.ReportErrorOperationCompleted = new System.Threading.SendOrPostCallback(this.OnReportErrorOperationCompleted);
     }
     this.InvokeAsync("ReportError", new object[] {
                 request}, this.ReportErrorOperationCompleted, userState);
 }
コード例 #3
0
 /// <remarks/>
 public void ReportErrorAsync(ErrorReportRequest request) {
     this.ReportErrorAsync(request, null);
 }