public void DeleteJobWithContent(int id) { _tracer.TraceEvent(TraceEventType.Start, 0); var contentRepository = new PageContentRepository(this._settings); using (contentRepository.AcquireLock(id)) { using (var scope = new TransactionScope(TransactionScopeOption.Required)) { Job job; using (var context = new CoreContext()) { var repository = new JobRepository(context); job = repository.Load(id); repository.Delete(job); context.SaveChanges(); } if (job.HasReferenceScraped) { contentRepository.DeleteReferenceContent(id); } if (job.HasTestScraped) { contentRepository.DeleteTestContent(id); } scope.Complete(); } } _tracer.TraceEvent(TraceEventType.Stop, 0); }