public async Task <IList <Guid> > StartAsync()
        {
            await log.WriteLineAsync($"Start processing table '{table.Name}'");

            await log.WriteLineAsync($"{table.Name}: generating {table.GenerateCount} entities:");

            var generatedIds = new List <Guid>();

            for (int i = 0; i < table.GenerateCount; i++)
            {
                generatedIds.Add(await ProcessTableRecord());
            }

            return(generatedIds);
        }
        private async Task <string> GetRecord()
        {
            await log.WriteLineAsync($"Peeking existin record from table {dependency.DependentTable.Name}");

            var existingIds = await DatabaseContext.Instance.GetExistingIds(dependency.DependentTable.Name, dependency.DependentTable.IdentityField);

            if (existingIds.Count == 0)
            {
                await log.WriteLineAsync($"Nothing to peek");

                return(await CreateRecord());
            }

            var peekIndex = Randomizer.Instance.GetInt(existingIds.Count - 1);

            return(existingIds[peekIndex].ToTableRecordValueString());
        }