private void btnMigrate_Click(object sender, EventArgs e)
        {
            iFailed            = 0;
            iSuccess           = 0;
            iProcessed         = 0;
            btnMigrate.Enabled = false;
            lblStatus.Text     = "Started";
            CustomerPINInfo _custPINInfo = new CustomerPINInfo();

            if (bUpdateFromPINInfo)
            {
                _customerPINInfoList = _custPINInfo.GetRecords().ToList();
            }

            migratePINS();
        }
        private bool InsertCustomerTPIN(string IdentityNumber, string EncryptedPIN, string ChannelID, string RelationShipNumber, string createdBy, string AuthorizedBy, string status, string retryAvailable)
        {
            string MethodName = MethodBase.GetCurrentMethod().Name;
            bool   inserted   = false;

            try
            {
                Logger.logDebug(ModuleName, MethodName, "**********Entered Method**********", Logger.LOGLEVEL.INFO);

                //check for IDNumber Masking. If should be maksed then do the masking
                //
                Logger.logDebug(ModuleName, MethodName, "Identity Number: " + IdentityNumber, Logger.LOGLEVEL.INFO);

                Logger.logDebug(ModuleName, MethodName, "Inserting Customer", Logger.LOGLEVEL.INFO);

                /*
                 * [dbo].[CUSTOMER_PIN_AUTHEN](
                 *  [CUSTOMER_ID] [varchar](50) NOT NULL,
                 *  [CHANNEL_GROUP_ID] [varchar](50) NOT NULL,
                 *  [RELATIONSHIP_NUM] [varchar](50) NOT NULL,
                 *  [TPIN] [varchar](50) NOT NULL,
                 *  [RETRY_AVAILABLE] [int] NOT NULL,
                 *  [MAX_RETRY_COUNT] [int] NOT NULL,
                 *  [LAST_PIN_ENTERED_DATE] [datetime] NULL,
                 *  [LAST_PIN_CHANGE_DATE] [datetime] NULL,
                 *  [TPIN_FLAG] [varchar](50) NULL,
                 *  [PIN_VALUE] [varchar](50) NULL,
                 *  [PIN_OFFSET] [varchar](50) NULL,
                 *  [RESERVED_1] [varchar](50) NULL,
                 *  [RESERVED_2] [varchar](50) NULL,
                 *  [RESERVED_3] [varchar](50) NULL,
                 *  [STATUS] [varchar](50) NOT NULL,
                 *  [CREATED_BY] [varchar](50) NOT NULL,
                 *  [CREATED_ON] [datetime] NOT NULL,
                 *  [UPDATED_BY] [varchar](50) NULL,
                 *  [UPDATED_ON] [datetime] NOT NULL,
                 *  [AUTHORIZED_BY] [varchar](50) NULL,
                 *  [AUTHORIZED_ON] [datetime] NULL,
                 */

                if (createdBy == "")
                {
                    createdBy = "UNKNOWN SYSTEM GENERATED";
                }

                string lastPinChangeDate    = "";
                string lastPinentryDate     = "";
                string lastSuccAuthDate     = "";
                string lastPinGenDate       = "";
                string lastStatusUpdateDate = "";

                string createdOn = "";
                string updatedBy = "";
                string updatedOn = "";


                try
                {
                    if (bUpdateFromPINInfo)
                    {
                        CustomerPINInfo _tempCustPinInfo = _customerPINInfoList.Where(e => e.IDENTITY_NUMBER == RelationShipNumber).FirstOrDefault();
                        if (_tempCustPinInfo != null)
                        {
                            if (_tempCustPinInfo.PIN_TYPE_CODE != PIN_TYPE.SPIN.GetHashCode().ToString())
                            {
                                retryAvailable = "0";
                                status         = "MB";
                            }

                            Logger.logDebug(ModuleName, MethodName, "Getting last pin change date", Logger.LOGLEVEL.WARNING);
                            lastPinChangeDate = FormatDate(_tempCustPinInfo.LAST_PIN_CHANGE_DATE, DBSourceDateFormat, DBDestDateFormat);
                            Logger.logDebug(ModuleName, MethodName, "Getting last pin entry date", Logger.LOGLEVEL.WARNING);
                            lastPinentryDate = FormatDate(_tempCustPinInfo.LAST_PIN_ENTRY_DATE, DBSourceDateFormat, DBDestDateFormat);
                            Logger.logDebug(ModuleName, MethodName, "Getting last auth date", Logger.LOGLEVEL.WARNING);
                            lastSuccAuthDate = FormatDate(_tempCustPinInfo.LAST_SUCCESFUL_AUTH_DATE, DBSourceDateFormat, DBDestDateFormat);
                            Logger.logDebug(ModuleName, MethodName, "Getting last pin generation date", Logger.LOGLEVEL.WARNING);
                            lastPinGenDate = FormatDate(_tempCustPinInfo.LAST_PIN_GENERATION_DATE, DBSourceDateFormat, DBDestDateFormat);
                            Logger.logDebug(ModuleName, MethodName, "Getting last status update date", Logger.LOGLEVEL.WARNING);
                            lastStatusUpdateDate = FormatDate(_tempCustPinInfo.LAST_STATUS_UPDATE_DATE, DBSourceDateFormat, DBDestDateFormat);

                            createdBy = _tempCustPinInfo.CREATED_BY;
                            createdOn = FormatDate(_tempCustPinInfo.CREATED_ON, DBSourceDateFormat, DBDestDateFormat);

                            updatedBy = _tempCustPinInfo.UPDATED_BY;
                            updatedOn = FormatDate(_tempCustPinInfo.UPDATED_ON, DBSourceDateFormat, DBDestDateFormat);
                        }
                    }
                }
                catch (Exception ex)
                {
                }

                if (createdOn == null || createdOn == "")
                {
                    createdOn = "getdate()";
                }

                if (createdBy == null || createdBy == "")
                {
                    createdBy = "MIGRATED";
                }

                string sqlQuery    = "INSERT INTO CUSTOMER_PIN_AUTHEN (CUSTOMER_ID, CHANNEL_GROUP_ID, RELATIONSHIP_NUM, TPIN, RETRY_AVAILABLE,MAX_RETRY_COUNT, STATUS,CREATED_BY, CREATED_ON, RESERVED_3, AUTHORIZED_BY, AUTHORIZED_ON";
                string queryValues = "VALUES ('" + IdentityNumber + "'," +
                                     "'" + ChannelID + "'," +
                                     "'" + RelationShipNumber + "'," +
                                     "'" + EncryptedPIN + "'," +
                                     "" + retryAvailable + "," +
                                     "" + DefaultMaxRetryCount.ToString() + "," +
                                     "'" + status + "'," +
                                     "'" + createdBy + "'," +
                                     "getdate()," +
                                     "'MIGRATED'," +
                                     "'" + AuthorizedBy + "'," +
                                     "getdate()";

                if (updatedOn != "")
                {
                    sqlQuery    += ", UPDATED_ON";
                    queryValues += ", '" + updatedOn + "'";
                }

                if (updatedBy != "")
                {
                    sqlQuery    += ", UPDATED_BY";
                    queryValues += ", '" + updatedBy + "'";
                }

                if (lastPinentryDate != "")
                {
                    sqlQuery    += ", LAST_PIN_ENTERED_DATE";
                    queryValues += ", '" + lastPinentryDate + "'";
                }

                if (lastPinChangeDate != "")
                {
                    sqlQuery    += ", LAST_PIN_CHANGE_DATE";
                    queryValues += ", '" + lastPinChangeDate + "'";
                }

                sqlQuery = sqlQuery + ")" + queryValues + ")";

                Logger.logDebug(ModuleName, MethodName, "Executing Query : " + sqlQuery, Logger.LOGLEVEL.INFO);

                if (bInsertMigDB)
                {
                    OledbSqlHelper _dbHelper = new OledbSqlHelper(DBDestConnString, bDBDestConnEncrypted);

                    inserted = _dbHelper.ExecuteNonQuery(sqlQuery);
                }
                else
                {
                    inserted = true;
                }

                if (inserted)
                {
                    writeSuccessQueriestoFile(sqlQuery);
                }
                else
                {
                    writeFailedQueriestoFile(sqlQuery);
                    writeFailedCustomerswithQuerytoFile(IdentityNumber);
                }

                Logger.logDebug(ModuleName, MethodName, "Insert Result: " + inserted.ToString(), Logger.LOGLEVEL.INFO);

                return(inserted);
            }
            catch (Exception ex)
            {
                Logger.logDebug(ModuleName, MethodName, "Exception      : " + ex.Message, Logger.LOGLEVEL.INFO);
                if (ex.InnerException != null)
                {
                    Logger.logDebug(ModuleName, MethodName, "Inner Exception: " + ex.InnerException.Message, Logger.LOGLEVEL.INFO);
                }
                Logger.logDebug(ModuleName, MethodName, "**********Exiting Method**********", Logger.LOGLEVEL.INFO);

                MessageBox.Show(ex.Message);

                throw ex;
            }
        }