public ExmJob StartJob(ExmJobDefinitionModel jobDefinition) { jobDefinition.Job = new ExmJob(); _jobDefinitions.Add(jobDefinition); var options = new JobOptions("ExperienceGeneratorExm-" + jobDefinition.Job.Id, "ExperienceGenerator", Sitecore.Context.Site.Name, this, "Run", new object[] { jobDefinition }); JobManager.Start(options); return(jobDefinition.Job); }
public IHttpActionResult Post(ExmJobDefinitionModel specifications) { var job = ExmJobManager.Instance.StartJob(specifications); job.StatusUrl = Url.Route("ExperienceGeneratorExmJobsApi", new { action = "Get", id = job.Id }); return(Ok(job)); }
public void Run(ExmJobDefinitionModel jobDefinition) { ExmEventsGenerator.Errors = 0; jobDefinition.Job.JobStatus = JobStatus.Running; var jobCount = 1; foreach (var keyValuePair in jobDefinition) { ClearCounters(jobDefinition.Job); jobDefinition.Job.CampaignCountLabel = $"Generating Data for campaign {jobCount ++} of {jobDefinition.Count}..."; var exmDataPreparationService = new ExmDataPreparationService(jobDefinition, keyValuePair.Value, keyValuePair.Key); exmDataPreparationService.CreateData(); } jobDefinition.Job.JobStatus = JobStatus.Complete; }
public ExmDataPreparationService(ExmJobDefinitionModel specification, CampaignModel campaignDefinition, Guid exmCampaignId) { _specification = specification; _campaignDefinition = campaignDefinition; _exmCampaignId = exmCampaignId; _contactService = new ExmContactService(specification); _listService = new ExmListService(specification); var devices = new DeviceRepository().GetAll().ToDictionary(ga => ga.Id, ga => ga.UserAgent); _userAgent = campaignDefinition.Devices.ToDictionary(kvp => devices[kvp.Key], kvp => kvp.Value).Weighted(); var geoData = GetGeoData(campaignDefinition.Locations); _geoData = geoData.Select(x => x.WhoIs).Weighted(geoData.Select(x => x.Weight).ToArray()); _eventDay = campaignDefinition.DayDistribution.Select(x => x / 100d).WeightedInts(); if (campaignDefinition.LandingPages.Count > 0) { _goalId = campaignDefinition.LandingPages.Keys.Weighted(campaignDefinition.LandingPages.Values.Select(x => x / 100).ToArray()); } }
public ExmContactService(ExmJobDefinitionModel specification) { _specification = specification; }
public ExmListService(ExmJobDefinitionModel specification) { _specification = specification; ListManager = (ListManager <ContactList, ContactData>)Factory.CreateObject("contactListManager", false); }