private static async Task CreateIdeaCommentsAsync(ICommandsDbContext commandsDbContext, IMediator bus) { var commentsCount = await commandsDbContext.IdeaComments.CountAsync("{}"); if (commentsCount > 0) return; var users = await commandsDbContext.Users.Find("{}").Limit(100).ToListAsync(); var ideas = await commandsDbContext.Ideas.Find("{}").ToListAsync(); var usersIndex = 0; var commandHandler = new CreateIdeaCommentCommandHandler(commandsDbContext, bus); foreach (var idea in ideas) for (int i = 0; i != 5; ++i) { var author = users[usersIndex++ % users.Count()]; var command = new CreateIdeaComment(Guid.NewGuid(), idea.Id, author.Id, RandomTextGenerator.GetRandomSentence(20)); await commandHandler.Handle(command); } }
private static async Task CreateUsersAsync(ICommandsDbContext commandsDbContext, IMediator bus) { var usersCount = await commandsDbContext.Users.CountAsync("{}"); if (usersCount > 0) return; var firstNamesIndex = 0; var lastNamesIndex = 0; usersCount = 100; var firstNames = new string[] { "John", "Paul", "Ringo", "Jack", "David", "Jim", "Johnny", "Brad", "Kim", "Jimmy", "Robert", "Freddy", "Matthew", "Nicholas", "Mike" }.OrderBy(n => Guid.NewGuid()).ToArray(); var lastNames = new string[] { "Jones", "Mercury", "Starr", "Page", "Pitt", "Cage", "Bones", "Doe", "Bonham", "White", "Plant", "Portnoy", "Grohl", "May" }.OrderBy(n => Guid.NewGuid()).ToArray(); var commandHandler = new CreateUserCommandHandler(commandsDbContext, bus); var command = new CreateUser(Guid.NewGuid(), "admin", "admin", "*****@*****.**", true); await commandHandler.Handle(command); command = new CreateUser(Guid.NewGuid(), "user", "user", "*****@*****.**"); await commandHandler.Handle(command); for (int i = 0; i < usersCount; i++) { var firstName = firstNames[(firstNamesIndex++) % firstNames.Length]; var lastName = lastNames[(lastNamesIndex++) % lastNames.Length]; var username = string.Format("{0}.{1}", firstName, lastName).ToLower(); var email = string.Format("{0}@email.com", username); if (await FindUserByEmailAsync(commandsDbContext.Users, email)) { var count = 0; while (true) { email = string.Format("{0}{1}@email.com", username, ++count); if (!await FindUserByEmailAsync(commandsDbContext.Users, email)) break; if (count > 1000) { email = string.Empty; break; } } } if (string.IsNullOrWhiteSpace(email)) continue; command = new CreateUser(Guid.NewGuid(), firstName, lastName, email); await commandHandler.Handle(command); } }
private static async Task CreateAreasAsync(ICommandsDbContext commandsDbContext, IMediator bus) { var areasCount = await commandsDbContext.Ideas.CountAsync("{}"); if (areasCount > 0) return; var users = await commandsDbContext.Users.Find("{}").Limit(100).ToListAsync(); var usersIndex = 0; areasCount = 50; var commandHandler = new CreateAreaCommandHandler(commandsDbContext, bus); usersIndex = await CreateAreaAsync(users, usersIndex, commandHandler, "Canteen"); usersIndex = await CreateAreaAsync(users, usersIndex, commandHandler, "Dell @ Limerick"); usersIndex = await CreateAreaAsync(users, usersIndex, commandHandler, "Dell Sales Application"); usersIndex = await CreateAreaAsync(users, usersIndex, commandHandler, "Employee Resource Group"); usersIndex = await CreateAreaAsync(users, usersIndex, commandHandler, "Global Operations"); usersIndex = await CreateAreaAsync(users, usersIndex, commandHandler, "IT"); usersIndex = await CreateAreaAsync(users, usersIndex, commandHandler, "Sports & Social"); usersIndex = await CreateAreaAsync(users, usersIndex, commandHandler, "Tech Central"); //for (int i = 0; i != areasCount; ++i) //{ // var title = RandomTextGenerator.GetRandomSentence(5); // usersIndex = await CreateAreaAsync(users, usersIndex, commandHandler, title); //} }