protected virtual SitecronJob CreateSitecronJob(Item jobItem) { if (jobItem == null) { return(null); } var siteCronJob = new SitecronJob(); siteCronJob.ItemId = jobItem.ID.ToString(); siteCronJob.TemplateId = jobItem.TemplateID; siteCronJob.Name = jobItem.Name; siteCronJob.JobSource = "DATABASE"; siteCronJob.JobTypeSignature = jobItem[SitecronConstants.FieldNames.Type]; siteCronJob.CronExpression = jobItem[SitecronConstants.FieldNames.CronExpression]; siteCronJob.Parameters = jobItem[SitecronConstants.FieldNames.Parameters]; siteCronJob.Items = jobItem[SitecronConstants.FieldNames.Items]; siteCronJob.Disable = jobItem[SitecronConstants.FieldNames.Disable] == "1"; siteCronJob.ArchiveAfterExecution = jobItem[SitecronConstants.FieldNames.ArchiveAfterExecution] == "1"; siteCronJob.ExecuteExactlyAtDateTime = new DateField(jobItem.Fields[SitecronConstants.FieldNames.ExecuteExactlyAtDateTime]).DateTime; siteCronJob.LastRunUTC = jobItem[SitecronConstants.FieldNames.LastRunUTC]; siteCronJob.NextRunUTC = jobItem[SitecronConstants.FieldNames.NextRunUTC]; siteCronJob.ExecutionTime = jobItem[SitecronConstants.FieldNames.ExecutionTime]; siteCronJob.LastRunLog = jobItem[SitecronConstants.FieldNames.LastRunUTC]; siteCronJob.SitecoreJobType = jobItem[SitecronConstants.FieldNames.SitecoreJobType]; siteCronJob.SitecoreJobMethod = jobItem[SitecronConstants.FieldNames.SitecoreJobMethod]; siteCronJob.SitecoreJobName = jobItem[SitecronConstants.FieldNames.SitecoreJobName]; siteCronJob.SitecoreJobCategory = jobItem[SitecronConstants.FieldNames.SitecoreJobCategory]; siteCronJob.SitecoreJobSiteName = jobItem[SitecronConstants.FieldNames.SitecoreJobSiteName]; siteCronJob.SitecoreJobPriority = jobItem[SitecronConstants.FieldNames.SitecoreJobPriority]; siteCronJob.SitecoreScheduleJob = jobItem[SitecronConstants.FieldNames.SitecoreScheduleJob]; siteCronJob.MinionFullName = jobItem[SitecronConstants.FieldNames.MinionFullName]; siteCronJob.EnvironmentName = jobItem[SitecronConstants.FieldNames.EnvironmentName]; return(siteCronJob); }
public bool IsValid(SitecronJob job) { if (job == null) { return(false); } if (job.JobType == null) { Log.Info($"Sitecron - Job Not Loaded - Could not load type '{job.JobTypeSignature}' for job - Job Source: {job.JobSource} - {job.Name} - {job.ItemId}", this); return(false); } if (string.IsNullOrEmpty(job.CronExpression) && job.ExecuteExactlyAtDateTime.Value == DateTime.MinValue) { Log.Info($"Sitecron - Job Not Loaded - Invalid ExecuteExactlyAtDateTime or Cron Expression: Job Source: {job.JobSource} - {job.Name} ExecuteExactlyAtDateTime: {job.ExecuteExactlyAtDateTime.Value} Cron Expression: {job.CronExpression}", this); return(false); } if (!string.IsNullOrEmpty(job.CronExpression) && job.ExecuteExactlyAtDateTime.Value != DateTime.MinValue) { Log.Info($"Sitecron - Job Not Loaded - Both ExecuteExactlyAtDateTime and Cron Expression specified: Job Source: {job.JobSource} - {job.Name} ExecuteExactlyAtDateTime: {job.ExecuteExactlyAtDateTime.Value} Cron Expression: {job.CronExpression}", this); return(false); } if (job.ExecuteExactlyAtDateTime.Value != DateTime.MinValue && job.ExecuteExactlyAtDateTime.Value.ToUniversalTime() < DateTime.Now.ToUniversalTime()) { Log.Info($"Sitecron - Job Not Loaded - ExecuteExactlyAtDateTime is in the past: Job Source: {job.JobSource} - {job.Name} ExecuteExactlyAtDateTime: {job.ExecuteExactlyAtDateTime.Value} Cron Expression: {job.CronExpression}", this); return(false); } if (job.Disable) { Log.Info($"Sitecron - Job Not Loaded - Job Disabled: Job Source: {job.JobSource} - {job.Name} Type: {job.JobTypeSignature} Cron Expression: {job.CronExpression}", this); return(false); } //if its a Run As Sitecore Job, validate fields if (job.TemplateId == SitecronConstants.Templates.SitecronRunAsSitecoreJobTemplateID && (string.IsNullOrEmpty(job.SitecoreJobCategory) || string.IsNullOrEmpty(job.SitecoreJobMethod) || string.IsNullOrEmpty(job.SitecoreJobName) || string.IsNullOrEmpty(job.SitecoreJobSiteName) || string.IsNullOrEmpty(job.SitecoreJobType) || string.IsNullOrEmpty(job.SitecoreJobPriority))) { Log.Info($"Sitecron - RunAsSitecoreJob - Job Not Loaded - Job Disabled: Job Source: {job.JobSource} - {job.Name} Type: {job.JobTypeSignature} Cron Expression: {job.CronExpression}", this); return(false); } //if its a SiteCron Sitecore Schedule Command Job, validate fields if (job.TemplateId == SitecronConstants.Templates.SiteCronSitecoreScheduleCommandJobTemplateID && (string.IsNullOrEmpty(job.SitecoreJobCategory) || string.IsNullOrEmpty(job.SitecoreJobName) || string.IsNullOrEmpty(job.SitecoreJobSiteName) || string.IsNullOrEmpty(job.SitecoreJobPriority) || string.IsNullOrEmpty(job.SitecoreScheduleJob))) { Log.Info($"Sitecron - SiteCron Sitecore Schedule Command Job - Job Not Loaded - Job Disabled: Job Source: {job.JobSource} - {job.Name} Type: {job.JobTypeSignature} Cron Expression: {job.CronExpression}", this); return(false); } return(true); }