private static async Task GenerateImpl() { await using var connectionController = new DbConnectionControllerMySql(connectionString); var repo = new UsersRepoMySql(connectionController, new NullLogger <UsersRepoMySql>()); await OpenConnection(connectionController); for (var idxFrom = 0; idxFrom < count; idxFrom += step) { var idxTo = idxFrom + step < count ? idxFrom + step : count; var testUsers = new Faker <User>(/*"ru"*/) .RuleFor(u => u.Id, (f, u) => 0) .RuleFor(u => u.GivenName, (f, u) => f.Name.FirstName()) .RuleFor(u => u.FamilyName, (f, u) => f.Name.LastName()) .RuleFor(u => u.Email, (f, u) => f.Internet.Email(u.GivenName, u.FamilyName, null, f.UniqueIndex.ToString())) .RuleFor(u => u.Password, (f, u) => hasher.HashPassword("123")) .RuleFor(u => u.Age, (f, u) => f.Random.Byte(5, 80)) .RuleFor(u => u.City, f => f.Address.City()) .RuleFor(u => u.IsActive, f => true); var users = testUsers.Generate(idxTo - idxFrom); foreach (var user in users) { await repo.AddUser(user); Interlocked.Increment(ref generated); } logger.LogInformation($"{generated} have been generated."); } }
private static async Task <bool> IsGenerationNeeded() { if (!onlyIfDbEmpty) { return(true); } await using var connectionController = new DbConnectionControllerMySql(connectionString); var repo = new UsersRepoMySql(connectionController, new NullLogger <UsersRepoMySql>()); await OpenConnection(connectionController); var totalCount = await repo.GetUsersCount(new GetUsersQuery()); return(totalCount == 0); }