private async Task <SortingJobDto> UpdateSortingJobAsync(SortingJobDto sortingJob) { ValidateUpdatingSortingJob(sortingJob); var updatedSearchingJob = await _sortingJobRepository.UpdateSortingJobAsync(sortingJob); return(updatedSearchingJob); }
private void ValidateHaveGottenSortingJob(int sortingJobId, SortingJobDto sortingJob) { if (sortingJob == null) { var errorMessage = $"SortingJob with Id {sortingJobId} has not been found, update failed!"; _logger.LogError(errorMessage); throw new GetSortingJobException(errorMessage); } }
public async Task <SortingJobDto> CreateSortingJobAsync(SortingJobDto sortingJob) { var sortingJobEntity = _mapper.Map <SortingJob>(sortingJob); _context.SortingJobs.Add(sortingJobEntity); await _context.SaveChangesAsync(); var sortingJobDto = _mapper.Map <SortingJobDto>(sortingJobEntity); return(sortingJobDto); }
public async Task <SortingJobDto> UpdateSortingJobAsync(SortingJobDto sortingJob) { var existingSortingJob = await GetSortingJobByIdAsync(sortingJob.Id); var sortingJobEntity = _mapper.Map(sortingJob, existingSortingJob); _context.SortingJobs.Update(sortingJobEntity); await _context.SaveChangesAsync(); var updatedSortingJobDto = _mapper.Map <SortingJobDto>(sortingJobEntity); return(updatedSortingJobDto); }
public async Task ProcessSortingJobAsync(SortingJobDto sortingJob) { sortingJob.TimeStamp = DateTime.UtcNow.ToUnixTimeSeconds(); var stopwatch = Stopwatch.StartNew(); var sortedSequence = SortSequence(sortingJob.Input); stopwatch.Stop(); sortingJob.Output = sortedSequence; sortingJob.Status = Status.Completed.ToString(); sortingJob.Duration = stopwatch.Elapsed.TotalMilliseconds; await UpdateSortingJobAsync(sortingJob); }
public async Task <SortingJobStatusDto> CreateSortingJobAsync(IEnumerable <int> sortableSequence) { var enumeratedSortableSequence = ValidateCreatingSortingJob(sortableSequence); var sortingJobDto = new SortingJobDto { Input = enumeratedSortableSequence, Status = Status.Pending.ToString() }; var createdSortingJob = await _sortingJobRepository.CreateSortingJobAsync(sortingJobDto); SendSortingJobToProcess(createdSortingJob); var createdSortingJobStatus = _mapper.Map <SortingJobStatusDto>(createdSortingJob); return(createdSortingJobStatus); }
private void ValidateUpdatingSortingJob(SortingJobDto sortingJob) { if (sortingJob == null) { var errorMessage = "SortingJob is null, update failed!"; _logger.LogError(errorMessage); throw new UpdateSortingJobException(errorMessage); } var existingSortingJob = _sortingJobRepository.GetSortingJobAsync(sortingJob.Id); if (existingSortingJob == null) { var errorMessage = $"SortingJob with Id {sortingJob.Id} has not been found, update failed!"; _logger.LogError(errorMessage); throw new UpdateSortingJobException(errorMessage); } }
private void SendSortingJobToProcess(SortingJobDto createdSortingJob) { _messageQueue.Enqueue(createdSortingJob); }