refactor(tasks): route UI quick-add through TaskRepository.AddAsync

Drops the append-SortOrder query duplicated inline in TasksIslandViewModel.AddAsync; the repository (already used by MCP AddTask) is now the single home for the create+SortOrder invariant. Sets Status=Idle explicitly for parity.
This commit is contained in:
Mika Kuns
2026-06-19 14:10:16 +02:00
parent b3e099ca01
commit 1fb2e34f85

View File

@@ -408,20 +408,15 @@ public sealed partial class TasksIslandViewModel : ViewModelBase, IDisposable
if (string.IsNullOrWhiteSpace(NewTaskTitle) || _currentList?.Kind != ListKind.User) return; if (string.IsNullOrWhiteSpace(NewTaskTitle) || _currentList?.Kind != ListKind.User) return;
var listId = _currentList.Id["user:".Length..]; var listId = _currentList.Id["user:".Length..];
await using var db = await _dbFactory.CreateDbContextAsync(); await using var db = await _dbFactory.CreateDbContextAsync();
var maxSort = await db.Tasks
.Where(t => t.ListId == listId)
.Select(t => (int?)t.SortOrder)
.MaxAsync();
var entity = new TaskEntity var entity = new TaskEntity
{ {
Id = Guid.NewGuid().ToString("N"), Id = Guid.NewGuid().ToString("N"),
ListId = listId, ListId = listId,
Title = NewTaskTitle.Trim(), Title = NewTaskTitle.Trim(),
Status = TaskStatus.Idle,
CreatedAt = DateTime.UtcNow, CreatedAt = DateTime.UtcNow,
SortOrder = (maxSort ?? -1) + 1,
}; };
db.Tasks.Add(entity); await new TaskRepository(db).AddAsync(entity);
await db.SaveChangesAsync();
var row = TaskRowViewModel.FromEntity(entity); var row = TaskRowViewModel.FromEntity(entity);
row.ShowListChip = _currentList?.Kind == ListKind.Virtual; row.ShowListChip = _currentList?.Kind == ListKind.Virtual;
Items.Add(row); Items.Add(row);