private void OnNewErrorReport(ErrorReportBase errorReportBase)
		{
			if (this.NewErrorReport != null)
			{
				this.NewErrorReport(this, new NewErrorReportEventArgs<ErrorReportBase>(errorReportBase));
			}
		}
		public void CreateServerErrorReport(ErrorReportBase clientErrorReport)
		{
			ProcessException.Handle("ServerErrorReportingEngine.CreateServerErrorReport() :" + clientErrorReport.ToString());
      ServerErrorReport serverErrorReport = new ServerErrorReport();
			serverErrorReport.ClientErrorReport = clientErrorReport;
			OnNewErrorReport(serverErrorReport);

			ThreadPool.QueueUserWorkItem(delegate(object state) { UploableErrorReportingEngine.Instance.CreateProcessingJob((ServerErrorReport)state); }, serverErrorReport);

		}
		public void CreateServerErrorReport(ErrorReportBase clientErrorReport)
		{
			try
			{
				instance.CreateServerErrorReport(clientErrorReport);
			}
			catch (Exception e)
			{
				ProcessException.Handle(e);
#if DEBUG
				throw e;
#endif
			}
		}
		public void CreateServerErrorReport(ErrorReportBase clientErrorReport)
		{
		}
		public ErrorReportBase CreateErrorReport()
		{
			ErrorReportBase errorReport = new ErrorReportBase();
			this.errorReportsList.Add(errorReport);
			OnNewErrorReport(errorReport);
			return errorReport;
		}