using System; using System.Collections; using System.Collections.Generic; namespace ln.skyscanner.crawl { public class CredentialsGenerator : IEnumerable { HashSet userNames = new HashSet(); HashSet passWords = new HashSet(); public CredentialsGenerator() { } public CredentialsGenerator AddUserNames(IEnumerable usernames) { foreach (String userName in usernames) AddUserName(userName); return this; } public CredentialsGenerator AddUserName(String username) { userNames.Add(username); return this; } public CredentialsGenerator AddPasswords(IEnumerable passwords) { foreach (String pw in passwords) AddPassword(pw); return this; } public CredentialsGenerator AddPassword(String password) { passWords.Add(password); return this; } public IEnumerator GetEnumerator() { foreach (String username in userNames) foreach (String pw in passWords) yield return new Credential(username, pw); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } public class Credential { public String Username { get; } public String Password { get; } public Credential(String username,String password) { Username = username; Password = password; } } }