public ReportProcessingJob(ProcessingJobsSharedTools processingJobsSharedTools, ServerErrorReport report)
		{
			this.tools = processingJobsSharedTools;
			this.report = report;
			reportHashCode = tools.GetReportHashCode(this.report);

			inProcessingTicketsList = new List<ReportProcessingTicket>(tools.GetTicketsOfTypeInProcessing(reportHashCode));
			sentTicketsList = new List<ReportProcessingTicket>(tools.GetTicketsOfTypeAlreadySent(reportHashCode));
			toBeUploadedTicketsList = new List<ReportProcessingTicket>(tools.GetTicketsOfTypeToBeUploaded(reportHashCode));
			uploadingTicketsList = new List<ReportProcessingTicket>(tools.GetAllUploadingTicketsOfType(reportHashCode));

			allTicketsList = new List<ReportProcessingTicket>();
			allTicketsList.AddRange(sentTicketsList);
			allTicketsList.AddRange(inProcessingTicketsList);
			allTicketsList.AddRange(toBeUploadedTicketsList);
			allTicketsList.AddRange(uploadingTicketsList);

			ticket = new ReportProcessingTicket();
			ticket.ReportHashcode = reportHashCode;
		}
 public string GetReportHashCode(ServerErrorReport serverErrorReport)
 {
     //the hashcode of the error report is the hascode of the stack trace string. 
     //2 errors with the same stack trace will have the same error report
     return ((uint)(serverErrorReport.GetHashCode())).ToString();
 }