public async Task Save(TaskInfo task, CancellationToken cancellationToken = default) { var domainObject = await _context.Tasks.FirstOrDefaultAsync(t => t.ResourceId.Equals(task.Id), cancellationToken).ConfigureAwait(false); domainObject.PopulateFromTaskInfoResponse(task); await _context.SaveChangesAsync(cancellationToken).ConfigureAwait(false); }
public async Task Enqueue(TaskInfo task, CancellationToken cancellationToken = default) { var existingTask = await _context.Tasks.FirstOrDefaultAsync(t => t.ResourceId == task.Id, cancellationToken).ConfigureAwait(false); if (existingTask == null) { var tags = new List <string>(task.Tags ?? Enumerable.Empty <string>()); if (!string.IsNullOrEmpty(_config.Tag)) { tags.Add(_config.Tag); } task.Tags = tags.Distinct().ToArray(); task.Status = TaskStatus.Created; var domainObject = Domain.Tasks.TaskInfo.FromTaskInfoResponse(task, _config.StorageType); await _context.Tasks.AddAsync(domainObject, cancellationToken).ConfigureAwait(false); } else { existingTask.Status = TaskStatus.Created; } await _context.SaveChangesAsync(cancellationToken).ConfigureAwait(false); }