/// <summary> /// Domain generator /// </summary> /// <returns>IEnumerable<string> of domain names</returns> public IEnumerable <string> GenerateDomains() { try { if (Cities.Count == 0 || Fruits.Count == 0) { throw new IndexOutOfRangeException("Cites or Fruits collecion is empty"); } int current = 0; while (current < CountToGenerate) { string fruit = RandomGenerator <string> .GetRandom(Fruits); string city = RandomGenerator <string> .GetRandom(Cities); TopLevelDomainName tld = RandomGenerator <TopLevelDomainName> .GetRandom(Enum.GetValues(typeof(TopLevelDomainName)).Cast <TopLevelDomainName>()); var dc = new DomainCard($"{fruit}-{city}", tld); if (!DomainCards.Any(a => a.ToString() == dc.ToString())) { DomainCards.Add(dc); current++; } Thread.Sleep(20); } return(DomainCards.Select(s => s.ToString())); } catch (Exception e) { throw new Exception("Unable to generate domain name(s).", e); } }
/// <summary> /// COnstructor that takes a actual domain name and top level domain name /// </summary> /// <param name="actualName">Actual domain name</param> /// <param name="tld">Top Level domain name</param> public DomainCard(string actualName, TopLevelDomainName tld) { ActualDomainName = actualName; TopLevelDomainName = tld; }