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(); } }