/// <inheritdoc/> public void Cards(ICaller caller) { using IDealData data = InstanceFactory.GetInstance <IDealData>(); if (data.AnyCard()) { return; } IList <ISuit> suits = data.ReadAllSuits(); if (suits.Count == 0) { throw new InvalidOperationException(ExceptionResource.MustSeedSuitsBeforeSeedingCards); } IList <IRank> ranks = data.ReadAllRanks(); if (suits.Count == 0) { throw new InvalidOperationException(ExceptionResource.MustSeedSuitsBeforeSeedingCards); } foreach (ISuit suit in suits) { foreach (IRank rank in ranks) { data.CreateCard(new Card( id: Guid.NewGuid(), suit: suit, rank: rank)); } } }