Пример #1
0
        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());
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
 public JobFlags(Common.Enums.Competition competition, JobType type)
 {
     Competition = competition;
     Type        = type;
 }
Пример #4
0
 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"); };
 }