public Process(string identityToken, string industryType)
        {
            if (identityToken.Length > 1)
            {
                Helper.ServiceKey = Helper.RetrieveServiceKeyFromIdentityToken(identityToken.Trim());
                Helper.IdentityToken = identityToken;
            }
            else
            {
                //TODO return or display an error
                return;
            }

            PtlsSocketId = ConfigurationManager.AppSettings["PtlsSocketId"];

            if (industryType.Length > 0)
            {
                if (industryType == "Ecommerce")
                    IndustryValues = DataGenerator.getIndustryType("Ecommerce");
                if (industryType == "MOTO")
                    IndustryValues = DataGenerator.getIndustryType("MOTO");
                if (industryType == "Retail")
                    IndustryValues = DataGenerator.getIndustryType("Retail");
                if (industryType == "Restaurant")
                    IndustryValues = DataGenerator.getIndustryType("Restaurant");
            }
        }
        public static IndustryTypeValues getIndustryType(string _industryType)
        {
            IndustryTypeValues i = new IndustryTypeValues();
            if (_industryType == "")
            {
                //ApplicationData schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.
                i._ApplicationAttended = Convert.ToBoolean(ConfigurationManager.AppSettings["ApplicationAttended"]);
                i._ApplicationLocation = (schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.ApplicationLocation)Enum.Parse(typeof(schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.ApplicationLocation), ConfigurationManager.AppSettings["ApplicationLocation"]);
                i._PINCapability = (schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.PINCapability)Enum.Parse(typeof(schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.PINCapability), ConfigurationManager.AppSettings["PINCapability"]);
                i._ReadCapability = (schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.ReadCapability)Enum.Parse(typeof(schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.ReadCapability), ConfigurationManager.AppSettings["ReadCapability"]);
                i._EncryptionType = (EncryptionType)Enum.Parse(typeof(EncryptionType), ConfigurationManager.AppSettings["EncryptionType"]);

                //MerchantData
                i._IndustryType = (schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.IndustryType)Enum.Parse(typeof(schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.IndustryType), ConfigurationManager.AppSettings["IndustryType"]);
                i._CustomerPresent = (schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.CustomerPresent)Enum.Parse(typeof(schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.CustomerPresent), ConfigurationManager.AppSettings["CustomerPresent"]);
                i._RequestACI = (schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.RequestACI)Enum.Parse(typeof(schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.RequestACI), ConfigurationManager.AppSettings["RequestACI"]);
                i._EntryMode = (schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.EntryMode)Enum.Parse(typeof(schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.EntryMode), ConfigurationManager.AppSettings["EntryMode"]);

                //TransactionData
                i._ProcessAsKeyed = Convert.ToBoolean(ConfigurationManager.AppSettings["TxnData_ProcessAsKeyed"]);
                i._SignatureCaptured = Convert.ToBoolean(ConfigurationManager.AppSettings["TxnData_SignatureCaptured"]);
                i._IncludeAVS = Convert.ToBoolean(ConfigurationManager.AppSettings["TxnData_IncludeAVS"]);
                i._IncludeCV= Convert.ToBoolean(ConfigurationManager.AppSettings["TxnData_IncludeCV"]);
            }
            if (_industryType == "Ecommerce")
            {
                //ApplicationData
                i._ApplicationAttended = false;
                i._ApplicationLocation = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.ApplicationLocation.OffPremises;
                i._PINCapability = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.PINCapability.PINNotSupported;
                i._ReadCapability = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.ReadCapability.KeyOnly;
                i._EncryptionType = EncryptionType.NotSet;

                //MerchantData
                i._IndustryType = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.IndustryType.Ecommerce;
                i._CustomerPresent = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.CustomerPresent.Ecommerce;
                i._RequestACI = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.RequestACI.IsCPSMeritCapable;
                i._EntryMode = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.EntryMode.Keyed;

                //TransactionData
                i._ProcessAsKeyed = true;
                i._SignatureCaptured = false;
                i._IncludeAVS = true;
                i._IncludeCV = true;
            }
            if (_industryType == "MOTO")
            {
                //ApplicationData
                i._ApplicationAttended = false;
                i._ApplicationLocation = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.ApplicationLocation.OffPremises;
                i._PINCapability = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.PINCapability.PINNotSupported;
                i._ReadCapability = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.ReadCapability.KeyOnly;
                i._EncryptionType = EncryptionType.NotSet;

                //MerchantData
                i._IndustryType = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.IndustryType.MOTO;
                i._CustomerPresent = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.CustomerPresent.MOTO;
                i._RequestACI = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.RequestACI.IsCPSMeritCapable;
                i._EntryMode = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.EntryMode.Keyed;

                //TransactionData
                i._ProcessAsKeyed = true;
                i._SignatureCaptured = false;
                i._IncludeAVS = true;
                i._IncludeCV = true;
            }
            if (_industryType == "Retail")
            {
                //ApplicationData
                i._ApplicationAttended = true;
                i._ApplicationLocation = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.ApplicationLocation.OnPremises;
                i._PINCapability = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.PINCapability.PINNotSupported;
                i._ReadCapability = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.ReadCapability.HasMSR;
                if (Convert.ToBoolean(ConfigurationManager.AppSettings["TxnData_ProcessMagensaTxn"]))
                    i._EncryptionType = EncryptionType.MagneSafeV4V5Compatible;
                else
                    i._EncryptionType = EncryptionType.NotSet;
                //MerchantData
                i._IndustryType = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.IndustryType.Retail;
                i._CustomerPresent = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.CustomerPresent.Present;
                i._RequestACI = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.RequestACI.IsCPSMeritCapable;
                i._EntryMode = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.EntryMode.TrackDataFromMSR;

                //TransactionData
                i._ProcessAsKeyed = false;
                i._SignatureCaptured = true;
                i._IncludeAVS = false;
                i._IncludeCV = false;
            }
            if (_industryType == "Restaurant")
            {
                //ApplicationData
                i._ApplicationAttended = true;
                i._ApplicationLocation = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.ApplicationLocation.OnPremises;
                i._PINCapability = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.PINCapability.PINNotSupported;
                i._ReadCapability = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.ReadCapability.HasMSR;
                if (Convert.ToBoolean(ConfigurationManager.AppSettings["TxnData_ProcessMagensaTxn"]))
                    i._EncryptionType = EncryptionType.MagneSafeV4V5Compatible;
                else
                    i._EncryptionType = EncryptionType.NotSet;
                //MerchantData
                i._IndustryType = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.IndustryType.Restaurant;
                i._CustomerPresent = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.CustomerPresent.Present;
                i._RequestACI = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.RequestACI.IsCPSMeritCapable;
                i._EntryMode = schemas.ipcommerce.com.Ipc.General.WCF.Contracts.Common.External.SvcInfo.EntryMode.TrackDataFromMSR;

                //TransactionData
                i._ProcessAsKeyed = false;
                i._SignatureCaptured = true;
                i._IncludeAVS = false;
                i._IncludeCV = false;
            }
            _ITV = i;
            return i;
        }