Beispiel #1
0
        public async Task <IActionResult> EPSUpsertPetroTable([FromBody] PetroTable petroTable)
        {
            try
            {
                await _loggingFacade.LogAsync(new LogEntry(LogLevels.Info, "Starting EPSUpsertPetroTable HttpPost request", "EPSTableController.cs", "EPSUpsertPetroTable"), CancellationToken.None);

                var serviceResponse = await _epsTableApi.EPSUpsertPetroTable(petroTable);

                if (serviceResponse.Result == Model.Error.EPSTableErrorCodes.Succeeded)
                {
                    return(Ok(true));
                }
                else
                {
                    var errorMessage = this._localizer[serviceResponse.Result.ToString()]?.Value;
                    await _loggingFacade.LogAsync(new LogEntry(LogLevels.Error, errorMessage + "EPSUpsertPetroTable Unsuccessful", "EPSUpsertPetroTable.cs", "EPSUpsertPetroTable"), CancellationToken.None);

                    return(BadRequest(errorMessage));
                }
            }
            catch (Exception ex)
            {
                var msg = this._localizer?[Model.Error.EPSTableErrorCodes.EPSTableUpsertErrorMsg.ToString()]?.Value;
                await _loggingFacade.LogExceptionAsync(ex, this.HttpContext?.Request?.Headers["UserName"], LogLevels.Error, "Error in EPSUpsertPetroTable()", CancellationToken.None);

                return(this.StatusCode((int)System.Net.HttpStatusCode.InternalServerError, msg));
            }
        }
Beispiel #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="petroTable"></param>
        /// <returns></returns>
        public static string UpsertPetroTable(PetroTable petroTable)
        {
            string errorKey = string.Empty;

            if (petroTable.DefinitionOnly && !string.IsNullOrEmpty(petroTable.DefaultXML))
            {
                errorKey = "EPSTableDefaultXMLErrorMsg";
            }
            else if (petroTable.EffectiveDate == System.DateTime.MinValue)
            {
                errorKey = "EPSTableEffectiveDateErrorMsg";
            }
            else if (string.IsNullOrEmpty(petroTable.LastUpdatedBy))
            {
                errorKey = "EPSTableLastUpdatedByErrorMsg";
            }
            else if (string.IsNullOrEmpty(petroTable.TableName))
            {
                errorKey = "EPSTableTableNameErrorMsg";
            }
            else if (petroTable.VersionID <= 0)
            {
                errorKey = "EPSTableVersionErrorMsg";
            }
            return(errorKey);
        }
Beispiel #3
0
        public PetroTable GetTableFromXml(string xml)
        {
            try
            {
                PetroTable table = new PetroTable();
                if (string.IsNullOrEmpty(xml))
                {
                    return(table);
                }
                XDocument xDoc = XDocument.Parse(xml);
                XElement  root = xDoc.Root;
                foreach (XAttribute attribute in root.Attributes())
                {
                    if (attribute.Name.LocalName.Equals("Active"))
                    {
                        table.Active = attribute.Value == "1";
                    }
                    else if (attribute.Name.LocalName.Equals("DefinitionOnly"))
                    {
                        table.DefinitionOnly = attribute.Value == "1";
                    }
                    else if (attribute.Name.LocalName.Equals("EffectiveDate"))
                    {
                        table.EffectiveDate = DateTime.Parse(attribute.Value);
                    }
                    else if (attribute.Name.LocalName.Equals("TableID"))
                    {
                        table.TableID = Int32.Parse(attribute.Value);
                    }
                    else if (attribute.Name.LocalName.Equals("TableName"))
                    {
                        table.TableName = attribute.Value;
                    }
                }

                foreach (var element in root.Elements())
                {
                    if (element.Name.LocalName.Equals("SchemaDef"))
                    {
                        table.SchemaDef = element.Value;
                    }
                    else if (element.Name.LocalName.Equals("DefaultXML"))
                    {
                        table.DefaultXML = element.Value;
                    }
                }

                return(table);
            }
            catch
            {
                throw;
            }
        }
Beispiel #4
0
        public async Task <ApiResult <EPSTableErrorCodes> > EPSUpsertPetroTable(PetroTable petroTable)
        {
            ApiResult <EPSTableErrorCodes> apiResponse = new ApiResult <EPSTableErrorCodes>();

            try
            {
                var response = EPSTableErrorCodes.Succeeded;
                if (petroTable != null && !string.IsNullOrEmpty(petroTable.SchemaDef))
                {
                    petroTable.SchemaDef = _xmlApi.RemoveEncoding(petroTable.SchemaDef);
                }
                if (petroTable != null && !string.IsNullOrEmpty(petroTable.DefaultXML))
                {
                    petroTable.DefaultXML = _xmlApi.RemoveEncoding(petroTable.DefaultXML);
                }
                if (petroTable.DefinitionOnly && !string.IsNullOrEmpty(petroTable.DefaultXML))
                {
                    response = EPSTableErrorCodes.EPSTableDefaultXMLErrorMsg;
                }
                else if (petroTable.EffectiveDate == System.DateTime.MinValue)
                {
                    response = EPSTableErrorCodes.EPSTableEffectiveDateErrorMsg;
                }
                else if (string.IsNullOrEmpty(petroTable.LastUpdatedBy))
                {
                    response = EPSTableErrorCodes.EPSTableLastUpdatedByErrorMsg;
                }
                else if (string.IsNullOrEmpty(petroTable.TableName))
                {
                    response = EPSTableErrorCodes.EPSTableTableNameErrorMsg;
                }
                else if (petroTable.VersionID <= 0)
                {
                    response = EPSTableErrorCodes.EPSTableVersionErrorMsg;
                }
                else
                {
                    apiResponse.Result = await _epsTableRepository.EPSUpsertPetroTableAsync(petroTable);

                    return(apiResponse);
                }
                apiResponse.Result = response;
            }
            catch (System.Exception)
            {
                throw;
            }

            return(apiResponse);
        }
Beispiel #5
0
        private PetroTable GetTable(XElement element)
        {
            try
            {
                PetroTable table = new PetroTable();
                foreach (XAttribute attribute in element.Attributes())
                {
                    if (attribute.Name.LocalName.Equals("Active"))
                    {
                        table.Active = attribute.Value == "1";
                    }
                    else if (attribute.Name.LocalName.Equals("DefinitionOnly"))
                    {
                        table.DefinitionOnly = attribute.Value == "1";
                    }
                    else if (attribute.Name.LocalName.Equals("EffectiveDate"))
                    {
                        table.EffectiveDate = DateTime.Parse(attribute.Value);
                    }
                    else if (attribute.Name.LocalName.Equals("TableID"))
                    {
                        table.TableID = Int32.Parse(attribute.Value);
                    }
                    else if (attribute.Name.LocalName.Equals("TableName"))
                    {
                        table.TableName = attribute.Value;
                    }
                }

                foreach (var ele in element.Elements())
                {
                    if (ele.Name.LocalName.Equals("SchemaDef"))
                    {
                        table.SchemaDef = ele.ToString().Replace("<SchemaDef>", "").Replace("</SchemaDef>", "");
                    }
                    else if (ele.Name.LocalName.Equals("DefaultXML"))
                    {
                        table.DefaultXML = ele.ToString().Replace("<DefaultXML>", "").Replace("</DefaultXML>", "").Replace("<DefaultXML />", "");
                    }
                }
                return(table);
            }
            catch
            {
                throw;
            }
        }
Beispiel #6
0
        public async Task <EPSTableErrorCodes> EPSUpsertPetroTableAsync(PetroTable petroTable)
        {
            try
            {
                var p = new DynamicParameters();
                p.Add("VersionID", petroTable.VersionID, DbType.Int32);
                p.Add("TableName", petroTable.TableName, DbType.String);
                p.Add("Active", petroTable.Active, DbType.Boolean);
                p.Add("DefinitionOnly", petroTable.DefinitionOnly, DbType.Boolean);
                p.Add("SchemaDef", petroTable.SchemaDef, DbType.Xml);
                p.Add("DefaultXML", string.IsNullOrEmpty(petroTable.DefaultXML) ? "" : petroTable.DefaultXML, DbType.Xml);//
                p.Add("EffectiveDate", petroTable.EffectiveDate, DbType.DateTime);
                p.Add("LastUpdatedBy", petroTable.LastUpdatedBy, DbType.String);
                var result = await EPSUpsertPetroTable(p);

                return(await Task.FromResult(result));
            }
            catch (System.Exception)
            {
                throw;
            }
        }
Beispiel #7
0
        public MockEPSMappingApiRepository()
        {
            epsMapping = new List <EPSMapping>();
            epsMapping.Add(new EPSMapping()
            {
                versionID                = 1,
                pdlFlag                  = true,
                worldPayFieldName        = "PrimaryPhoneNbr",
                worldPayTableName        = "tbTranSurcharge",
                worldPayJoinFields       = null,
                worldPayCondition        = "CheckDigit",
                worldPayOrderBy          = "EffectiveBeginDt DESC",
                worldPayFieldDescription = "Payment Type",
                paramID                  = 143,
                effectiveBeginDate       = Convert.ToDateTime("2013-07-02"),
                effectiveEndDate         = Convert.ToDateTime("2015-08-01"),
                viperTableName           = "FIDTable",
                viperFieldName           = "FieldUsageIdentifierTable/FieldUsageIdentifierRow/DefaultValue",
                viperCondition           = @"/FieldUsageIdentifierTable/FieldUsageIdentifierRow[FieldUsageIdentifier=DEALERNAME]",
                charLength               = 100,
                charStartIndex           = 102
            });
            epsMapping.Add(new EPSMapping()
            {
                versionID                = 2,
                pdlFlag                  = true,
                worldPayFieldName        = "SecondaryPhoneNbr",
                worldPayTableName        = "tbTerminalProgramming,tbAuthPhoneNbr",
                worldPayJoinFields       = null,
                worldPayCondition        = null,
                worldPayOrderBy          = null,
                worldPayFieldDescription = "Account Type",
                paramID                  = 153,
                effectiveBeginDate       = Convert.ToDateTime("2014-05-04"),
                effectiveEndDate         = Convert.ToDateTime("2015-10-01"),
                viperTableName           = "FIDTable",
                viperFieldName           = "FieldUsageIdentifierTable/FieldUsageIdentifierRow/DefaultValue",
                viperCondition           = @"/FieldUsageIdentifierTable/FieldUsageIdentifierRow[FieldUsageIdentifier=AVS]",
                charLength               = 1,
                charStartIndex           = 201
            });
            epsMapping.Add(new EPSMapping()
            {
                versionID                = 3,
                pdlFlag                  = true,
                worldPayFieldName        = "SurchargeAmount",
                worldPayTableName        = "tbTranSurcharge",
                worldPayJoinFields       = null,
                worldPayCondition        = "tbTerminalProgramming.AuthPhoneNbrID = tbAuthPhoneNbr.AuthPhoneNbrID AND TerminalNbr=?",
                worldPayOrderBy          = null,
                worldPayFieldDescription = "Receipt Header Information",
                paramID                  = 163,
                effectiveBeginDate       = Convert.ToDateTime("2016-12-02"),
                viperTableName           = "FIDTable",
                viperFieldName           = "/FEPTable/FEPRow/PrimaryPhoneNumber",
                viperCondition           = @"/FieldUsageIdentifierTable/FieldUsageIdentifierRow[FieldUsageIdentifier=CVV]",
                charLength               = 3,
                charStartIndex           = 101
            });
            epsMapping.Add(new EPSMapping()
            {
                versionID = 1,
                mappingID = 28,
                pdlFlag   = false,
                worldPayFieldDescription = "Payment Type",
                effectiveBeginDate       = DateTime.Now,
                effectiveEndDate         = DateTime.Now,
                viperTableName           = "CardTable",
                viperFieldName           = "/CardTable/CardRow/CTI",
                charStartIndex           = 1,
                charLength = 1
            });
            epsMapping.Add(new EPSMapping()
            {
                versionID = 1,
                mappingID = 29,
                pdlFlag   = false,
                worldPayFieldDescription = "Account Type",
                effectiveBeginDate       = DateTime.Now,
                effectiveEndDate         = DateTime.Now,
                viperTableName           = "CardTable",
                viperFieldName           = "/CardTable/CardRow/CTI",
                charStartIndex           = 2,
                charLength = 1
            });
            epsMapping.Add(new EPSMapping()
            {
                versionID = 1,
                mappingID = 30,
                pdlFlag   = true,
                paramID   = 49,
                paramName = "CARD ACCEPTANCE FLAG",
                worldPayFieldDescription = "Accept Flag",
                effectiveBeginDate       = DateTime.Now,
                effectiveEndDate         = DateTime.Now,
                viperTableName           = "CardTable",
                viperFieldName           = "/CardTable/CardRow/CardEnabled",
                viperCondition           = "/CardTable/CardRow[LimitTableIndex=?]"
            });


            petroTable = new List <PetroTable>();
            PetroTable table = new PetroTable();

            table.TableID        = 1;
            table.TableName      = "AIDTable";
            table.VersionID      = 1;
            table.Active         = true;
            table.DefinitionOnly = false;
            table.SchemaDef      = "<!-- edited with XMLSpy v2014 (http://www.altova.com) by Farhan (Verifone Inc.) --><xs:schema xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:this=\"http://www.verifone.com/eps/viper/namespace/v1\" xmlns:tt=\"http://www.verifone.com/eps/viper/namespace/Dictionary/v1\" xmlns=\"http://www.verifone.com/eps/viper/namespace/v1\" targetNamespace=\"http://www.verifone.com/eps/viper/namespace/v1\" elementFormDefault=\"qualified\" attributeFormDefault=\"unqualified\"><xs:import namespace=\"http://www.verifone.com/eps/viper/namespace/Dictionary/v1\" schemaLocation=\"Dictionary.xsd\" /><xs:element name=\"AIDTable\"><xs:complexType><xs:sequence><xs:element name=\"AIDRow\" type=\"this:AIDRowType\" minOccurs=\"0\" maxOccurs=\"unbounded\" /></xs:sequence><xs:attribute name=\"version\" type=\"tt:VersionType\" use=\"required\" /></xs:complexType><xs:key name=\"AIDPK\"><xs:selector xpath=\"this:AIDRow\" /><xs:field xpath=\"this:AID\" /></xs:key></xs:element><xs:complexType name=\"AIDRowType\"><xs:sequence><xs:element name=\"AID\" type=\"tt:AIDType\"><xs:annotation><xs:documentation>Uniquely identifies the application (RID + PIX)</xs:documentation></xs:annotation></xs:element><xs:element name=\"AIDName\"><xs:annotation><xs:documentation>AID name used for cardholder confirmation if not present in card </xs:documentation></xs:annotation><xs:simpleType><xs:restriction base=\"xs:string\"><xs:minLength value=\"1\" /><xs:maxLength value=\"16\" /></xs:restriction></xs:simpleType></xs:element><xs:element name=\"RIDName\" minOccurs=\"0\"><xs:annotation><xs:documentation>Card scheme label. E.g. VISA, Mastercard, etc.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base=\"xs:string\"><xs:minLength value=\"1\" /><xs:maxLength value=\"35\" /></xs:restriction></xs:simpleType></xs:element><xs:element name=\"AIDEnabled\" type=\"xs:boolean\"><xs:annotation><xs:documentation>Indicates whether the AID is allowed or not</xs:documentation></xs:annotation></xs:element><xs:element name=\"AIDMode\" type=\"tt:ModeTypes\"><xs:annotation><xs:documentation>Defines whether it is a Contact or Contactless AID</xs:documentation></xs:annotation></xs:element><xs:element name=\"AIDTagList\" type=\"TagListType\" minOccurs=\"0\"><xs:annotation><xs:documentation>Additional list of transaction tags required to be send to the host for this AID</xs:documentation></xs:annotation></xs:element><xs:element name=\"AIDTagListExclude\" type=\"TagListType\" minOccurs=\"0\" maxOccurs=\"1\"><xs:annotation><xs:documentation>Defines list of required that should not be used for the corresponding AID in the transaction</xs:documentation></xs:annotation></xs:element><xs:element name=\"PinBypassFlag\" type=\"tt:PinBypassType\" minOccurs=\"0\"><xs:annotation><xs:documentation>Indicates whether PIN bypass should be allowed for this AID</xs:documentation></xs:annotation></xs:element><xs:element name=\"TransactionType\" type=\"tt:UsageFlag\" minOccurs=\"0\" maxOccurs=\"unbounded\"><xs:annotation><xs:documentation>Indicates the transaction types associated with the AID</xs:documentation></xs:annotation></xs:element><xs:element name=\"TerminalApplicationVersionNumber1\"><xs:annotation><xs:documentation>Version number assigned by the payment system for the application</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base=\"xs:string\"><xs:length value=\"4\" /></xs:restriction></xs:simpleType></xs:element><xs:element name=\"TerminalApplicationVersionNumber2\" minOccurs=\"0\"><xs:annotation><xs:documentation>Version number assigned by the payment system for the application</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base=\"xs:string\"><xs:length value=\"4\" /></xs:restriction></xs:simpleType></xs:element><xs:element name=\"TerminalRiskManagementData\" minOccurs=\"0\"><xs:annotation><xs:documentation>Application specific value used by the card for risk management purposes</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base=\"xs:string\"><xs:minLength value=\"2\" /><xs:maxLength value=\"16\" /></xs:restriction></xs:simpleType></xs:element><xs:element name=\"TerminalCapabilities\"><xs:annotation><xs:documentation>Indicates the card data input, CVM, and security capabilities of the terminal</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base=\"xs:string\"><xs:length value=\"6\" /></xs:restriction></xs:simpleType></xs:element><xs:element name=\"ApplicationCountryCode\" type=\"tt:StringIndexThreeType\" minOccurs=\"0\"><xs:annotation><xs:documentation>Indicates the Country Code associated with the AID</xs:documentation></xs:annotation></xs:element><xs:element name=\"TerminalFloorLimit\" type=\"tt:DigitIndexEightType\"><xs:annotation><xs:documentation>Indicates the floor limit in the terminal in conjunction with the AID</xs:documentation></xs:annotation></xs:element><xs:element name=\"RandomSelectionThreshold\" type=\"tt:DigitIndexEightType\" minOccurs=\"0\"><xs:annotation><xs:documentation>Value used in terminal risk management for random transaction selection. Must be zero or a positive number less than the floor limit</xs:documentation></xs:annotation></xs:element><xs:element name=\"TargetRandomSelectionPercent\" type=\"tt:DigitIndexTwoType\" minOccurs=\"0\"><xs:annotation><xs:documentation>The desired percentage of transactions just below the threshold value that will be selected for Random Selection</xs:documentation></xs:annotation></xs:element><xs:element name=\"MaxRandomSelectionPercent\" type=\"tt:DigitIndexTwoType\" minOccurs=\"0\"><xs:annotation><xs:documentation>The desired percentage of transactions just below the floor limit that will be selected for Random Selection</xs:documentation></xs:annotation></xs:element><xs:element name=\"TACDefault\"><xs:annotation><xs:documentation>Specifies the acquirer‘s conditions that cause a transaction to be rejected if it might have been approved online, but the terminal is unable to process the transaction online</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base=\"xs:string\"><xs:length value=\"10\" /></xs:restriction></xs:simpleType></xs:element><xs:element name=\"TACDenial\"><xs:annotation><xs:documentation>Specifies the acquirer‘s conditions that cause the denial of a transaction without attempt to go online</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base=\"xs:string\"><xs:length value=\"10\" /></xs:restriction></xs:simpleType></xs:element><xs:element name=\"TACOnline\"><xs:annotation><xs:documentation>Specifies the acquirer‘s conditions that cause a transaction to be transmitted online</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base=\"xs:string\"><xs:length value=\"10\" /></xs:restriction></xs:simpleType></xs:element><xs:element name=\"TDOLDefault\" type=\"xs:string\"><xs:annotation><xs:documentation>TDOL to be used for generating the TC Hash Value if the TDOL in the card is not present</xs:documentation></xs:annotation></xs:element><xs:element name=\"DDOLDefault\" type=\"xs:string\" minOccurs=\"0\"><xs:annotation><xs:documentation>DDOL to be used for constructing the INTERNAL AUTHENTICATE command if the DDOL in the card is not present</xs:documentation></xs:annotation></xs:element><xs:element name=\"StandinTVRMask\" minOccurs=\"0\"><xs:annotation><xs:documentation>TVR Mask used for EMV Stand-In processing</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base=\"xs:string\"><xs:length value=\"10\" /></xs:restriction></xs:simpleType></xs:element><xs:element name=\"StandinTSIMask\" minOccurs=\"0\"><xs:annotation><xs:documentation>TSI Mask used for EMV Stand-In processing</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base=\"xs:string\"><xs:length value=\"4\" /></xs:restriction></xs:simpleType></xs:element><xs:element name=\"PinBypassAmount\" type=\"tt:StringIndexFourType\" default=\"0000\" minOccurs=\"0\"><xs:annotation><xs:documentation>If the transaction amount is less than or equal to this amount, PIN bypass should be allowed for this AID</xs:documentation></xs:annotation></xs:element><xs:element name=\"AllowEMVStandInOnOfflineDecline\" type=\"xs:boolean\" default=\"false\" minOccurs=\"0\"><xs:annotation><xs:documentation>Indicates whether EMV Stand-In processing is allowed for this AID</xs:documentation></xs:annotation></xs:element><xs:element name=\"CheckCountryCodeForEMVStandIn\" type=\"xs:boolean\" default=\"false\" minOccurs=\"0\"><xs:annotation><xs:documentation>Indicates whether the Country Code should be checked during EMV Stand-In processing for this AID</xs:documentation></xs:annotation></xs:element><xs:element name=\"EMVStandInFloorLimit\" type=\"tt:StringIndexFourType\" default=\"0000\" minOccurs=\"0\"><xs:annotation><xs:documentation>If the transaction amount is less than this value, then the transaction would be applicable for EMV Stand-In processing</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType><xs:simpleType name=\"TagListType\"><xs:annotation><xs:documentation>\r\n\t\t\t\tRepresents a list of EMV tag types. Each list is a hexadecimal representation of TLV type. An tag entry is either of 2 or 4 characters of length and no more than 255 entries are allowed\r\n\t\t\t</xs:documentation></xs:annotation><xs:restriction base=\"xs:string\"><xs:maxLength value=\"1020\" /><xs:pattern value=\"([a-fA-F0-9])*\" /></xs:restriction></xs:simpleType></xs:schema>";
            table.DefaultXML     = "<AIDTable xmlns=\"http://www.verifone.com/eps/viper/namespace/v1\" xmlns:tt=\"http://www.verifone.com/eps/viper/namespace/Dictionary/v1\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" version=\"1\" xsi:schemaLocation=\"http://www.verifone.com/eps/viper/namespace/v1 ../schemas/tables/AIDTable.xsd\"><AIDRow><AID>A0000000031010</AID><AIDName>VISA CREDIT</AIDName><RIDName>VISA</RIDName><AIDEnabled>true</AIDEnabled><AIDMode>Contact</AIDMode><PinBypassFlag>0</PinBypassFlag><TransactionType>0</TransactionType><TransactionType>1</TransactionType><TerminalApplicationVersionNumber1>008C</TerminalApplicationVersionNumber1><TerminalRiskManagementData>A444A</TerminalRiskManagementData><TerminalCapabilities>E0F8C8</TerminalCapabilities><TerminalFloorLimit>00000000</TerminalFloorLimit><RandomSelectionThreshold>00000120</RandomSelectionThreshold><TargetRandomSelectionPercent>30</TargetRandomSelectionPercent><MaxRandomSelectionPercent>40</MaxRandomSelectionPercent><TACDefault>DC4000A800</TACDefault><TACDenial>0010000000</TACDenial><TACOnline>DC4004F800</TACOnline><TDOLDefault>9F020695055F2A029A039C019F3704</TDOLDefault><DDOLDefault>9F3704</DDOLDefault><StandinTVRMask>FD7FFB270F</StandinTVRMask><StandinTSIMask>E800</StandinTSIMask><AllowEMVStandInOnOfflineDecline>false</AllowEMVStandInOnOfflineDecline><CheckCountryCodeForEMVStandIn>false</CheckCountryCodeForEMVStandIn><EMVStandInFloorLimit>0000</EMVStandInFloorLimit></AIDRow><AIDRow><AID>A0000000032010</AID><AIDName>Visa Electron</AIDName><RIDName>Visa</RIDName><AIDEnabled>true</AIDEnabled><AIDMode>Contact</AIDMode><PinBypassFlag>0</PinBypassFlag><TransactionType>0</TransactionType><TransactionType>1</TransactionType><TerminalApplicationVersionNumber1>0096</TerminalApplicationVersionNumber1><TerminalCapabilities>E0F8C8</TerminalCapabilities><TerminalFloorLimit>00000000</TerminalFloorLimit><RandomSelectionThreshold>00000000</RandomSelectionThreshold><TargetRandomSelectionPercent>00</TargetRandomSelectionPercent><MaxRandomSelectionPercent>00</MaxRandomSelectionPercent><TACDefault>DC4000A800</TACDefault><TACDenial>0010000000</TACDenial><TACOnline>DC4004F800</TACOnline><TDOLDefault /><DDOLDefault>9F3704</DDOLDefault><StandinTVRMask>FD7FFB270F</StandinTVRMask><StandinTSIMask>E800</StandinTSIMask><AllowEMVStandInOnOfflineDecline>false</AllowEMVStandInOnOfflineDecline><CheckCountryCodeForEMVStandIn>false</CheckCountryCodeForEMVStandIn><EMVStandInFloorLimit>0000</EMVStandInFloorLimit></AIDRow><AIDRow><AID>A0000000033010</AID><AIDName>Visa Interlink</AIDName><RIDName>Visa</RIDName><AIDEnabled>true</AIDEnabled><AIDMode>Contact</AIDMode><PinBypassFlag>0</PinBypassFlag><TransactionType>0</TransactionType><TransactionType>1</TransactionType><TerminalApplicationVersionNumber1>0096</TerminalApplicationVersionNumber1><TerminalCapabilities>E0F8C8</TerminalCapabilities><TerminalFloorLimit>00000000</TerminalFloorLimit><RandomSelectionThreshold>00000000</RandomSelectionThreshold><TargetRandomSelectionPercent>00</TargetRandomSelectionPercent><MaxRandomSelectionPercent>00</MaxRandomSelectionPercent><TACDefault>DC4000A800</TACDefault><TACDenial>0010000000</TACDenial><TACOnline>DC4004F800</TACOnline><TDOLDefault /><DDOLDefault>9F3704</DDOLDefault><StandinTVRMask>FD7FFB270F</StandinTVRMask><StandinTSIMask>E800</StandinTSIMask><AllowEMVStandInOnOfflineDecline>false</AllowEMVStandInOnOfflineDecline><CheckCountryCodeForEMVStandIn>false</CheckCountryCodeForEMVStandIn><EMVStandInFloorLimit>0000</EMVStandInFloorLimit></AIDRow><AIDRow><AID>A0000000041010</AID><AIDName>MC CREDIT</AIDName><RIDName>MASTERCARD</RIDName><AIDEnabled>true</AIDEnabled><AIDMode>Contact</AIDMode><PinBypassFlag>1</PinBypassFlag><TransactionType>0</TransactionType><TransactionType>1</TransactionType><TerminalApplicationVersionNumber1>0002</TerminalApplicationVersionNumber1><TerminalCapabilities>E0F8C8</TerminalCapabilities><TerminalFloorLimit>00000000</TerminalFloorLimit><RandomSelectionThreshold>00000120</RandomSelectionThreshold><TargetRandomSelectionPercent>30</TargetRandomSelectionPercent><MaxRandomSelectionPercent>40</MaxRandomSelectionPercent><TACDefault>FC50BC2000</TACDefault><TACDenial>0000000000</TACDenial><TACOnline>FC50BCF800</TACOnline><TDOLDefault>9F020695055F2A029A039C019F3704</TDOLDefault><DDOLDefault>9F3704</DDOLDefault><StandinTVRMask>FD7FFB270F</StandinTVRMask><StandinTSIMask>E800</StandinTSIMask><AllowEMVStandInOnOfflineDecline>false</AllowEMVStandInOnOfflineDecline><CheckCountryCodeForEMVStandIn>false</CheckCountryCodeForEMVStandIn><EMVStandInFloorLimit>0000</EMVStandInFloorLimit></AIDRow><AIDRow><AID>A0000000043060</AID><AIDName>MC Credit</AIDName><RIDName>MasterCard</RIDName><AIDEnabled>true</AIDEnabled><AIDMode>Contact</AIDMode><PinBypassFlag>0</PinBypassFlag><TransactionType>0</TransactionType><TransactionType>1</TransactionType><TerminalApplicationVersionNumber1>0002</TerminalApplicationVersionNumber1><TerminalCapabilities>E0F8C8</TerminalCapabilities><TerminalFloorLimit>00000000</TerminalFloorLimit><RandomSelectionThreshold>00000000</RandomSelectionThreshold><TargetRandomSelectionPercent>00</TargetRandomSelectionPercent><MaxRandomSelectionPercent>00</MaxRandomSelectionPercent><TACDefault>FC50BC2000</TACDefault><TACDenial>0000000000</TACDenial><TACOnline>FC50BCF800</TACOnline><TDOLDefault /><DDOLDefault>9F3704</DDOLDefault><StandinTVRMask>FD7FFB270F</StandinTVRMask><StandinTSIMask>E800</StandinTSIMask><AllowEMVStandInOnOfflineDecline>false</AllowEMVStandInOnOfflineDecline><CheckCountryCodeForEMVStandIn>false</CheckCountryCodeForEMVStandIn><EMVStandInFloorLimit>0000</EMVStandInFloorLimit></AIDRow><AIDRow><AID>A0000001523010</AID><AIDName>DISCOVER CREDIT</AIDName><RIDName>DISCOVER</RIDName><AIDEnabled>true</AIDEnabled><AIDMode>Contact</AIDMode><PinBypassFlag>1</PinBypassFlag><TransactionType>0</TransactionType><TransactionType>1</TransactionType><TerminalApplicationVersionNumber1>0001</TerminalApplicationVersionNumber1><TerminalApplicationVersionNumber2>0001</TerminalApplicationVersionNumber2><TerminalCapabilities>E0B8C8</TerminalCapabilities><TerminalFloorLimit>00000000</TerminalFloorLimit><RandomSelectionThreshold>00000120</RandomSelectionThreshold><TargetRandomSelectionPercent>30</TargetRandomSelectionPercent><MaxRandomSelectionPercent>40</MaxRandomSelectionPercent><TACDefault>C800000000</TACDefault><TACDenial>0000000000</TACDenial><TACOnline>C800000000</TACOnline><TDOLDefault>9F020695055F2A029A039C019F3704</TDOLDefault><DDOLDefault>9F3704</DDOLDefault><StandinTVRMask>FD7FFB270F</StandinTVRMask><StandinTSIMask>E800</StandinTSIMask><AllowEMVStandInOnOfflineDecline>false</AllowEMVStandInOnOfflineDecline><CheckCountryCodeForEMVStandIn>false</CheckCountryCodeForEMVStandIn><EMVStandInFloorLimit>0000</EMVStandInFloorLimit></AIDRow><AIDRow><AID>A00000002501</AID><AIDName>AMEX CREDIT</AIDName><RIDName>AMEX</RIDName><AIDEnabled>true</AIDEnabled><AIDMode>Contact</AIDMode><PinBypassFlag>1</PinBypassFlag><TransactionType>0</TransactionType><TransactionType>1</TransactionType><TerminalApplicationVersionNumber1>0001</TerminalApplicationVersionNumber1><TerminalCapabilities>E0F8C8</TerminalCapabilities><TerminalFloorLimit>00000000</TerminalFloorLimit><RandomSelectionThreshold>00000000</RandomSelectionThreshold><TargetRandomSelectionPercent>00</TargetRandomSelectionPercent><MaxRandomSelectionPercent>00</MaxRandomSelectionPercent><TACDefault>DC00002000</TACDefault><TACDenial>0010000000</TACDenial><TACOnline>FCE09CF800</TACOnline><TDOLDefault>9F020695055F2A029A039C019F3704</TDOLDefault><DDOLDefault>9F3704</DDOLDefault><StandinTVRMask>FD7FFB270F</StandinTVRMask><StandinTSIMask>E800</StandinTSIMask><AllowEMVStandInOnOfflineDecline>false</AllowEMVStandInOnOfflineDecline><CheckCountryCodeForEMVStandIn>false</CheckCountryCodeForEMVStandIn><EMVStandInFloorLimit>0000</EMVStandInFloorLimit></AIDRow><AIDRow><AID>A0000000980840</AID><AIDName>Common Debit</AIDName><RIDName>Visa</RIDName><AIDEnabled>true</AIDEnabled><AIDMode>Contact</AIDMode><PinBypassFlag>0</PinBypassFlag><TransactionType>0</TransactionType><TransactionType>1</TransactionType><TerminalApplicationVersionNumber1>0001</TerminalApplicationVersionNumber1><TerminalCapabilities>E0F8C8</TerminalCapabilities><TerminalFloorLimit>00000000</TerminalFloorLimit><RandomSelectionThreshold>00000000</RandomSelectionThreshold><TargetRandomSelectionPercent>00</TargetRandomSelectionPercent><MaxRandomSelectionPercent>00</MaxRandomSelectionPercent><TACDefault>DC4000A800</TACDefault><TACDenial>0010000000</TACDenial><TACOnline>DC4004F800</TACOnline><TDOLDefault /><DDOLDefault>9F3704</DDOLDefault><StandinTVRMask>FD7FFB270F</StandinTVRMask><StandinTSIMask>E800</StandinTSIMask><AllowEMVStandInOnOfflineDecline>false</AllowEMVStandInOnOfflineDecline><CheckCountryCodeForEMVStandIn>false</CheckCountryCodeForEMVStandIn><EMVStandInFloorLimit>0000</EMVStandInFloorLimit></AIDRow><AIDRow><AID>A0000001524010</AID><AIDName>DISCOVER DEBIT</AIDName><RIDName>DISCOVER</RIDName><AIDEnabled>true</AIDEnabled><AIDMode>Contact</AIDMode><PinBypassFlag>0</PinBypassFlag><TransactionType>0</TransactionType><TransactionType>1</TransactionType><TerminalApplicationVersionNumber1>0001</TerminalApplicationVersionNumber1><TerminalApplicationVersionNumber2>0001</TerminalApplicationVersionNumber2><TerminalCapabilities>E0B8C8</TerminalCapabilities><TerminalFloorLimit>00000000</TerminalFloorLimit><RandomSelectionThreshold>00000120</RandomSelectionThreshold><TargetRandomSelectionPercent>30</TargetRandomSelectionPercent><MaxRandomSelectionPercent>40</MaxRandomSelectionPercent><TACDefault>C800000000</TACDefault><TACDenial>0000000000</TACDenial><TACOnline>C800000000</TACOnline><TDOLDefault>9F020695055F2A029A039C019F3704</TDOLDefault><DDOLDefault>9F3704</DDOLDefault><StandinTVRMask>FD7FFB270F</StandinTVRMask><StandinTSIMask>E800</StandinTSIMask><AllowEMVStandInOnOfflineDecline>false</AllowEMVStandInOnOfflineDecline><CheckCountryCodeForEMVStandIn>false</CheckCountryCodeForEMVStandIn><EMVStandInFloorLimit>0000</EMVStandInFloorLimit></AIDRow><AIDRow><AID>A0000000042203</AID><AIDName>MASTERCARD Debit</AIDName><RIDName>MASTERCARD</RIDName><AIDEnabled>true</AIDEnabled><AIDMode>Contact</AIDMode><PinBypassFlag>0</PinBypassFlag><TransactionType>0</TransactionType><TransactionType>1</TransactionType><TerminalApplicationVersionNumber1>0002</TerminalApplicationVersionNumber1><TerminalCapabilities>E0F8C8</TerminalCapabilities><TerminalFloorLimit>00000000</TerminalFloorLimit><RandomSelectionThreshold>00000000</RandomSelectionThreshold><TargetRandomSelectionPercent>00</TargetRandomSelectionPercent><MaxRandomSelectionPercent>00</MaxRandomSelectionPercent><TACDefault>FC50BC2000</TACDefault><TACDenial>0000000000</TACDenial><TACOnline>FC50BCF800</TACOnline><TDOLDefault /><DDOLDefault>9F3704</DDOLDefault><StandinTVRMask>FD7FFB270F</StandinTVRMask><StandinTSIMask>E800</StandinTSIMask><AllowEMVStandInOnOfflineDecline>false</AllowEMVStandInOnOfflineDecline><CheckCountryCodeForEMVStandIn>false</CheckCountryCodeForEMVStandIn><EMVStandInFloorLimit>0000</EMVStandInFloorLimit></AIDRow><AIDRow><AID>A0000006200620</AID><AIDName>Common Debit</AIDName><RIDName>DNA</RIDName><AIDEnabled>true</AIDEnabled><AIDMode>Contact</AIDMode><PinBypassFlag>0</PinBypassFlag><TransactionType>0</TransactionType><TransactionType>1</TransactionType><TerminalApplicationVersionNumber1>0096</TerminalApplicationVersionNumber1><TerminalCapabilities>E0B8C8</TerminalCapabilities><TerminalFloorLimit>00000000</TerminalFloorLimit><RandomSelectionThreshold>00000000</RandomSelectionThreshold><TargetRandomSelectionPercent>00</TargetRandomSelectionPercent><MaxRandomSelectionPercent>00</MaxRandomSelectionPercent><TACDefault>FC50ACA000</TACDefault><TACDenial>0000000000</TACDenial><TACOnline>FC50BCF800</TACOnline><TDOLDefault /><DDOLDefault>9F3704</DDOLDefault><StandinTVRMask>FD7FFB270F</StandinTVRMask><StandinTSIMask>E800</StandinTSIMask><AllowEMVStandInOnOfflineDecline>false</AllowEMVStandInOnOfflineDecline><CheckCountryCodeForEMVStandIn>false</CheckCountryCodeForEMVStandIn><EMVStandInFloorLimit>0000</EMVStandInFloorLimit></AIDRow></AIDTable>";
            table.CreatedDate    = DateTime.Parse("2017-07-25 13:16:18.25");
            table.EffectiveDate  = DateTime.Parse("2017-07-25 00:00:00");
            table.LastUpdatedBy  = "PNandyala";
            petroTable.Add(table);
        }