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(); } }
/// <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); }
/// <remarks/> public void ReportErrorAsync(ErrorReportRequest request) { this.ReportErrorAsync(request, null); }