public string GetStateNameForZipCode(int zipCode, AddressVerifier verifier) { if (!verifier.IsValidZipCode(zipCode)) { throw new InvalidOperationException($"Invalid ZipCode: {zipCode}"); } switch (zipCode) { case 9: return("Baku"); case 10: return("Ganja"); case 11: return("Izmir"); case 12: return("Istanbul"); default: throw new InvalidOperationException($"No state is found with {zipCode}"); } }
static void Main(string[] args) { var stateFinder = new StateFinder(); // For the United States try{ var addressVerifier = new AddressVerifier(); Console.WriteLine(stateFinder.GetStateNameForZipCode(11, addressVerifier)); Console.WriteLine(stateFinder.GetStateNameForZipCode(9, addressVerifier)); } catch (InvalidOperationException exception) { Console.WriteLine(exception.Message); } // For the Germany try{ var addressVerifier = new GermanyAddressVerifier(); Console.WriteLine(stateFinder.GetStateNameForZipCode(9, addressVerifier)); } catch (InvalidOperationException exception) { Console.WriteLine(exception.Message); } }