public void Advertise(Job job)
        {
            try
            {
                var properties = _propertyService.GetAvailablePropertiesIncludingDetailsAndPhotos();

                var results = _autoAdvertiseProviderFactory
                    .GetAll()
                    .Where(x => x.SupportsAdvertiseAll())
                    .Select(provider => provider.AdvertiseAllProperties(job.JobReference, properties))
                    .ToList();

                _autoAdvertiseResultRepository.CreateAdvertiseResults(AdvertiseResultFactory.Build(results,
                    properties.Select(x => x.PropertyReference).ToList(),
                    _referenceGenerator));

                _autoAdvertiseResultRepository.UpdateJob(job.JobReference, job.MarkAsSuccess());
            }
            catch (Exception)
            {
                _autoAdvertiseResultRepository.UpdateJob(job.JobReference, job.MarkAsFailure());
            }
        }