Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }