Lando.LowLevel.LowLevelCardReader.Connect C# (CSharp) Method

Connect() public method

Establishing a connection to smart card contained by a specific reader. Card reader name to connection.
public Connect ( string cardreaderName, System.Guid idOverride = null ) : Lando.LowLevel.ResultsTypes.ConnectResult
cardreaderName string
idOverride System.Guid
return Lando.LowLevel.ResultsTypes.ConnectResult
        public ConnectResult Connect(string cardreaderName, Guid? idOverride = null)
        {
            var resourceManagerContext = EstablishContextIfNotEstablished();

            IntPtr cardConnectionHandle;
            int connectionProtocolType;

            int returnCode = WinscardWrapper.SCardConnect(
                resourceManagerContext,
                cardreaderName,
                WinscardWrapper.SCARD_SHARE_SHARED,
                WinscardWrapper.SCARD_PROTOCOL_T0 | WinscardWrapper.SCARD_PROTOCOL_T1,
                out cardConnectionHandle,
                out connectionProtocolType);

            var operationResult = ReturnCodeManager.GetErrorMessage(returnCode);
            var connectResult = new ConnectResult(operationResult);

            if (operationResult.IsSuccessful)
            {
                var newCard = new Card(
                    Thread.CurrentThread.ManagedThreadId,
                    cardConnectionHandle,
                    cardreaderName,
                    connectionProtocolType);

                _cardConnectionManager.AddConnection(
                    idOverride ?? newCard.InternalUid,
                    Thread.CurrentThread.ManagedThreadId,
                    cardConnectionHandle);

                connectResult.ConnectedCard = newCard;
            }

            return connectResult;
        }