public async Task <(int, int, int)> Process() { var total = 0; var created = 0; var updated = 0; var warning = 0; await foreach (var pgPlannedRecurrence in _pgPlannedRecurrences.GetAll().AsAsyncEnumerable()) { var mongoPlannedRecurrence = await _mongoPlannedRecurrences.GetByIdAsync(pgPlannedRecurrence.Id.ToString()); if (mongoPlannedRecurrence == null) { created++; } else { updated++; if (mongoPlannedRecurrence.UserId != pgPlannedRecurrence.UserId) { warning++; } } if (!_dryRun) { await Upsert(pgPlannedRecurrence); } _progressNotifier?.Invoke(++total); } return(created, updated, warning); }
public async Task <(int, int, int)> Process() { var total = 0; var created = 0; var skipped = 0; var warning = 0; await foreach (var pgRecurrence in _pgRecurrences.GetAll().AsAsyncEnumerable()) { var mongoPlannedRecurrence = await _mongoPlannedRecurrences.GetByIdAsync(pgRecurrence.PlannedRecurrenceId.ToString()); if (mongoPlannedRecurrence == null) { warning++; } else if (mongoPlannedRecurrence.Recurrences.All(x => x.TaskUid != pgRecurrence.Task.Uid)) { created++; if (!_dryRun) { await Upsert(pgRecurrence, mongoPlannedRecurrence); } } else { skipped++; } _progressNotifier?.Invoke(++total); } return(created, skipped, warning); }