Esempio n. 1
0
        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);
        }