From 3aa7f60d966fcb26afb6287398bdcd1eb8b191ae Mon Sep 17 00:00:00 2001 From: Richard Leatherbarrow <66841514+rleatherbarrow@users.noreply.github.com> Date: Thu, 3 Sep 2020 18:10:06 +0100 Subject: [PATCH] Update ServicesContainer.cs Bug fix where exception was thrown if Secure3dVersion.Two key didn't exist in the _secure3dProviders dictionary. Fix ensures provider selection correctly falls back to attempting Secure3dVersion.One if Secure3dVersion.Two does not exist. Returns null if no Secure3dVersion supported to be handled by calling method. --- src/GlobalPayments.Api/ServicesContainer.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/GlobalPayments.Api/ServicesContainer.cs b/src/GlobalPayments.Api/ServicesContainer.cs index dff51f06..05af9d45 100644 --- a/src/GlobalPayments.Api/ServicesContainer.cs +++ b/src/GlobalPayments.Api/ServicesContainer.cs @@ -38,11 +38,13 @@ internal ISecure3dProvider GetSecure3DProvider(Secure3dVersion version) { return _secure3dProviders[version]; } else if (version.Equals(Secure3dVersion.Any)) { - var provider = _secure3dProviders[Secure3dVersion.Two]; - if (provider == null) { - provider = _secure3dProviders[Secure3dVersion.One]; + if (_secure3dProviders.ContainsKey(Secure3dVersion.Two)) { + return _secure3dProviders[Secure3dVersion.Two]; + } + else if (_secure3dProviders.ContainsKey(Secure3dVersion.One)) + { + return _secure3dProviders[Secure3dVersion.One]; } - return provider; } return null; }