public JobDto GetJobCandidate(Common.Enums.Competition competition) { var competitionJobs = jobs.Values.Where(x => x.Competition == competition && x.ScheduledDate < DateTime.Now && x.State != JobState.Error && x.State != JobState.Finished) .ToList(); return(competitionJobs.Any(x => x.State == JobState.InProgress) ? null : competitionJobs.OrderBy(x => x.ScheduledDate).FirstOrDefault()); }
public IJobBase CreateInstance(Common.Enums.Competition competition, JobType type) { var job = Jobs.SingleOrDefault(x => x.Competition == competition && x.Type == type); if (job == null) { return(null); } try { return((IJobBase)serviceProvider.GetService(job.ObjectType)); } catch (Exception e) { logger.LogError(e.Message); return(null); } }
public JobFlags(Common.Enums.Competition competition, JobType type) { Competition = competition; Type = type; }
public void Initialize(Common.Enums.Competition competitionIdentifier) { competition = competitionIdentifier; cache.JobFinished += async dto => { await RunNextJob("job finished"); }; cache.JobsAdded += async dtos => { await RunNextJob("jobs added"); }; }