コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }