Esempio n. 1
0
        public async Task <RatingJob> Insert(RatingJob job)
        {
            await _context.RatingJobs.AddAsync(job);

            await _context.SaveChangesAsync();

            return(job);
        }
Esempio n. 2
0
        public async Task <IActionResult> Run(int iterations, string type)
        {
            var running = await _jobService.AlgorithmIsRunning();

            if (running)
            {
                return(StatusCode(409, "Algorithm is already running"));
            }
            var ratingJob = new RatingJob
            {
                JobId     = 0,
                StartTime = DateTime.Now,
            };
            int jobId;

            switch (type)
            {
            case "singles":
                ratingJob.Type = "Algorithm.Singles";
                await _ratingJobRepository.Insert(ratingJob);

                var singlesInstance = (Algorithm)_serviceProvider.GetService(typeof(Algorithm));
                jobId = int.Parse(BackgroundJob.Enqueue(() => singlesInstance.UpdateRating(iterations, false, ratingJob.Id)));
                break;

            case "doubles":
                ratingJob.Type = "Algorithm.Doubles";
                await _ratingJobRepository.Insert(ratingJob);

                var doublesInstance = (AlgorithmDoubles)_serviceProvider.GetService(typeof(AlgorithmDoubles));
                jobId = int.Parse(BackgroundJob.Enqueue(() => doublesInstance.UpdateRating(iterations, null, ratingJob.Id)));
                break;

            default:
                return(StatusCode(400, "Type must be singles or doubles"));
            }
            ratingJob.JobId = jobId;
            await _ratingJobRepository.Update(ratingJob);

            return(StatusCode(200, "Algorithm started"));
        }
Esempio n. 3
0
 public async Task Update(RatingJob job)
 {
     _context.RatingJobs.Update(job);
     await _context.SaveChangesAsync();
 }