Example #1
0
        public JobWithContent LoadWithContent(int id)
        {
            _tracer.TraceEvent(TraceEventType.Start, 0);
            var contentRepository = new PageContentRepository(this._settings);

            using (contentRepository.AcquireLock(id))
            {
                Job job;
                using (var context = new CoreContext())
                {
                    var repository = new JobRepository(context);
                    job = repository.Load(id);
                }

                PageContent referenceContent = null;
                if (job.HasReferenceScraped)
                {
                    referenceContent = contentRepository.LoadReferenceContent(job.ID);
                }

                PageContent testContent = null;
                if (job.HasTestScraped)
                {
                    testContent = contentRepository.LoadTestContent(job.ID);
                }

                _tracer.TraceEvent(TraceEventType.Stop, 0);

                return(new JobWithContent(job, referenceContent, testContent));
            }
        }
Example #2
0
        public void SaveJobWithContent(JobWithContent job)
        {
            _tracer.TraceEvent(TraceEventType.Start, 0);

            var contentRepository = new PageContentRepository(this._settings);

            using (contentRepository.AcquireLock(job.ID))
            {
                using (var scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    if (job.HasTestScraped)
                    {
                        string jsonZones = JsonConvert.SerializeObject(job.TestContent.AdZoneNodes);
                        job.AdsInfo = jsonZones;
                    }

                    InternalSaveJob(job);
                    // save content to files
                    if (job.HasReferenceScraped)
                    {
                        contentRepository.SaveReferenceContent(job.ReferenceContent, job.ID);
                    }

                    if (job.HasTestScraped)
                    {
                        contentRepository.SaveTestContent(job.TestContent, job.ID);
                    }

                    scope.Complete();
                }
            }

            _tracer.TraceEvent(TraceEventType.Stop, 0);
        }
Example #3
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);
        }