private static void SeedUsers(SocialNetworkDbContext db) { const int totalUsers = 50; var biggestUserId = db.Users.Select(u => u.Id).FirstOrDefault(); var allUsers = new List <User>(); for (int i = biggestUserId; i < biggestUserId + totalUsers; i++) { var user = new User { Username = $"Username {i}", Password = $"Passw{i}r2@d#$", Email = $"email@email{i}.com", RegisteredOn = DateTime.Now.AddDays(100 + i * 10), LastTimeLoggedIn = DateTime.Now.AddDays(i), Age = i + 1 }; db.Add(user); allUsers.Add(user); } db.SaveChanges(); var userIds = allUsers.Select(u => u.Id).ToList(); for (int i = 0; i < userIds.Count; i++) { var currentUserId = userIds[i]; var totalFriends = random.Next(5, 11); for (int j = 0; j < totalFriends; j++) { var friendId = userIds[random.Next(0, userIds.Count)]; var validFriendShip = true; // Cannot be friend to myself if (friendId == currentUserId) { validFriendShip = false; } var friendShipExists = db .FriendShips .Any(f => (f.FromUserId == currentUserId && f.ToUserId == friendId) || (f.FromUserId == friendId && f.ToUserId == currentUserId)); if (friendShipExists) { validFriendShip = false; } if (!validFriendShip) { j--; continue; } db .FriendShips .Add(new FriendShip { FromUserId = currentUserId, ToUserId = friendId }); db.SaveChanges(); } } }