public string TransactionFundInsertBaseLine([FromBody] Payload payload)
        {
            try {
                var tranDto  = new TransactionDTOReq();
                var payLoads = payload.xmlData.Split(",").Select(x => x.Trim()).ToArray();
                tranDto.SenderBankSwiftCode = payLoads[0];
                tranDto.SenderVID           = payLoads[1];
                tranDto.ReceiverVID         = payLoads[2];
                tranDto.Amount               = payLoads[3];
                tranDto.ChannelName          = payLoads[4];
                tranDto.DeviceID             = payLoads[5];
                tranDto.MobileNumber         = payLoads[6];
                tranDto.LatLong              = payLoads[7];
                tranDto.IPAddress            = payLoads[8];
                tranDto.IDTPPIN              = payLoads[9];
                tranDto.EndToEndID           = payLoads[10];
                tranDto.SendingBankTxId      = payLoads[11];
                tranDto.SendingBankReference = payLoads[12];
                tranDto.MessageID            = payLoads[13];

                string IdtpRef = "IDTP" + DateTime.Now.ToString("yyyyMMddHHmmssfff");

                tranDto.SenderAccNo            = "ACC123";
                tranDto.ReceiverAccNo          = "ACC345";
                tranDto.SendingBankRoutingNo   = "123456";
                tranDto.ReceivingBankRoutingNo = "123456";
                tranDto.SenderBankId           = 1;
                tranDto.ReceiverBankId         = 2;

                tranDto.PaymentNote            = "Payment Note";
                tranDto.ReferenceIDTP          = IdtpRef;
                tranDto.TransactionTypeId      = "1";
                tranDto.SenderId               = 1;
                tranDto.ReceiverId             = 2;
                tranDto.FeeAmount              = "0";
                tranDto.VATAmount              = "0";
                tranDto.SendingPSPReference    = "";
                tranDto.ReceivingBankReference = "";
                tranDto.ReceivingPSPReference  = "";

                DBUtility.TransferFundFinalSp(tranDto);

                return("Insert successfull");
            }
            catch (Exception e) {
                return(e.Message);
            }
        }
 public static void TransferFundFinalSp(TransactionDTOReq transactionDTO)
 {
     try {
         string spname = "AddTransaction_V2";
         using (SqlConnection connection = new SqlConnection(ConnectionString)) {
             connection.Open();
             SqlCommand sql_cmnd = new SqlCommand(spname, connection);
             sql_cmnd.CommandType = CommandType.StoredProcedure;
             #region params
             sql_cmnd.Parameters.AddWithValue("@SenderAccNo", SqlDbType.VarChar).Value            = transactionDTO.SenderAccNo;
             sql_cmnd.Parameters.AddWithValue("@ReceiverAccNo", SqlDbType.VarChar).Value          = transactionDTO.ReceiverAccNo;
             sql_cmnd.Parameters.AddWithValue("@Amount", SqlDbType.Decimal).Value                 = Convert.ToDecimal(transactionDTO.Amount);
             sql_cmnd.Parameters.AddWithValue("@PaymentNote", SqlDbType.VarChar).Value            = transactionDTO.PaymentNote;
             sql_cmnd.Parameters.AddWithValue("@EndToEndID", SqlDbType.VarChar).Value             = transactionDTO.EndToEndID;
             sql_cmnd.Parameters.AddWithValue("@MessageID", SqlDbType.VarChar).Value              = transactionDTO.MessageID;
             sql_cmnd.Parameters.AddWithValue("@SendingBankRoutingNo", SqlDbType.VarChar).Value   = transactionDTO.SendingBankRoutingNo;
             sql_cmnd.Parameters.AddWithValue("@ReceivingBankRoutingNo", SqlDbType.VarChar).Value = transactionDTO.ReceivingBankRoutingNo;
             sql_cmnd.Parameters.AddWithValue("@ReferenceIDTP", SqlDbType.VarChar).Value          = transactionDTO.ReferenceIDTP;
             sql_cmnd.Parameters.AddWithValue("@IPAddress", SqlDbType.VarChar).Value              = transactionDTO.IPAddress;
             sql_cmnd.Parameters.AddWithValue("@LatLong", SqlDbType.VarChar).Value                = transactionDTO.LatLong;
             sql_cmnd.Parameters.AddWithValue("@MobileNumber", SqlDbType.VarChar).Value           = transactionDTO.MobileNumber;
             sql_cmnd.Parameters.AddWithValue("@TransactionTypeId", SqlDbType.Int).Value          = Convert.ToInt32(transactionDTO.TransactionTypeId);
             sql_cmnd.Parameters.AddWithValue("@ReferernceNumber", SqlDbType.VarChar).Value       = transactionDTO.IDTPPIN;
             sql_cmnd.Parameters.AddWithValue("@senderId", SqlDbType.BigInt).Value                = transactionDTO.SenderId;
             sql_cmnd.Parameters.AddWithValue("@receiverId", SqlDbType.BigInt).Value              = transactionDTO.ReceiverId;
             sql_cmnd.Parameters.AddWithValue("@SenderBankId", SqlDbType.Int).Value               = transactionDTO.SenderBankId;
             sql_cmnd.Parameters.AddWithValue("@ReceiverBankId", SqlDbType.Int).Value             = transactionDTO.ReceiverBankId;
             sql_cmnd.Parameters.AddWithValue("@FeeAmount", SqlDbType.Decimal).Value              = Convert.ToDecimal(transactionDTO.FeeAmount);
             sql_cmnd.Parameters.AddWithValue("@VATAmount", SqlDbType.Decimal).Value              = Convert.ToDecimal(transactionDTO.VATAmount);
             sql_cmnd.Parameters.AddWithValue("@SendingBankReference", SqlDbType.VarChar).Value   = transactionDTO.SendingBankReference;
             sql_cmnd.Parameters.AddWithValue("@SendingPSPReference", SqlDbType.VarChar).Value    = transactionDTO.SendingPSPReference;
             sql_cmnd.Parameters.AddWithValue("@ReceivingBankReference", SqlDbType.VarChar).Value = transactionDTO.ReceivingBankReference;
             sql_cmnd.Parameters.AddWithValue("@ReceivingPSPReference", SqlDbType.VarChar).Value  = transactionDTO.ReceivingPSPReference;
             #endregion
             sql_cmnd.ExecuteNonQuery();
             connection.Close();
         }
     }
     catch (Exception ex) {
         throw ex;
     }
 }
        public string TransactionFundInsertOnlyCSV([FromBody] Payload payload)
        {
            try {
                var tranDto  = new TransactionDTOReq();
                var payLoads = payload.xmlData.Split(",").Select(x => x.Trim()).ToArray();
                tranDto.SenderBankSwiftCode = payLoads[0];
                tranDto.SenderVID           = payLoads[1];
                tranDto.ReceiverVID         = payLoads[2];
                tranDto.Amount               = payLoads[3];
                tranDto.ChannelName          = payLoads[4];
                tranDto.DeviceID             = payLoads[5];
                tranDto.MobileNumber         = payLoads[6];
                tranDto.LatLong              = payLoads[7];
                tranDto.IPAddress            = payLoads[8];
                tranDto.IDTPPIN              = payLoads[9];
                tranDto.EndToEndID           = payLoads[10];
                tranDto.SendingBankTxId      = payLoads[11];
                tranDto.SendingBankReference = payLoads[12];
                tranDto.MessageID            = payLoads[13];

                string IdtpRef = "IDTP" + DateTime.Now.ToString("yyyyMMddHHmmssfff");
                User   sender, receiver;
                bool   senderExists   = _masterDataCache.UserDictionary.TryGetValue(tranDto.SenderVID, out sender);
                bool   receiverExists = _masterDataCache.UserDictionary.TryGetValue(tranDto.ReceiverVID, out receiver);
                if (!senderExists)
                {
                    throw new Exception("Invalid Sender");
                }
                if (!receiverExists)
                {
                    throw new Exception("Invalid Receiver");
                }

                //if(!SecurityService.DecryptAndCheck(tranDto.IDTPPIN, sender.SecretSalt, sender.IDTP_PIN)) throw new Exception("Invalid IDTP PIN");

                UserAccountInformationDTO senderAccInfo, receiverAccInfo;
                _masterDataCache.FiDictionary.TryGetValue(sender.DefaultFI, out senderAccInfo);
                _masterDataCache.FiDictionary.TryGetValue(receiver.DefaultFI, out receiverAccInfo);

                if (tranDto.ChannelName == "Mobile" && tranDto.DeviceID != senderAccInfo.DeviceID)
                {
                    throw new Exception("Invalid User Device Id");
                }


                tranDto.SenderAccNo            = senderAccInfo.AccountNumber;
                tranDto.ReceiverAccNo          = receiverAccInfo.AccountNumber;
                tranDto.SendingBankRoutingNo   = "123456";
                tranDto.ReceivingBankRoutingNo = "123456";
                tranDto.SenderBankId           = senderAccInfo.FinancialInstitutionId;
                tranDto.ReceiverBankId         = receiverAccInfo.FinancialInstitutionId;

                tranDto.PaymentNote            = "Payment Note";
                tranDto.ReferenceIDTP          = IdtpRef;
                tranDto.TransactionTypeId      = "1";
                tranDto.SenderId               = sender.UserId;
                tranDto.ReceiverId             = receiver.UserId;
                tranDto.FeeAmount              = "0";
                tranDto.VATAmount              = "0";
                tranDto.SendingPSPReference    = "";
                tranDto.ReceivingBankReference = "";
                tranDto.ReceivingPSPReference  = "";


                _idtpTransCache.SetTransValue(tranDto);

                return("Write in memory successfull");
            }
            catch (Exception e) {
                return(e.Message);
            }
        }
        public static void TransferFundFinalSp(string csvData)
        {
            try {
                string spname            = "AddTransaction_V2";
                var    serviceRequestDTO = new TransactionDTOReq();
                var    payLoads          = csvData.Split(",").Select(x => x.Trim()).ToArray();
                serviceRequestDTO.SenderBankSwiftCode = payLoads[0];
                serviceRequestDTO.SenderVID           = payLoads[1];
                serviceRequestDTO.ReceiverVID         = payLoads[2];
                serviceRequestDTO.Amount               = payLoads[3];
                serviceRequestDTO.ChannelName          = payLoads[4];
                serviceRequestDTO.DeviceID             = payLoads[5];
                serviceRequestDTO.MobileNumber         = payLoads[6];
                serviceRequestDTO.LatLong              = payLoads[7];
                serviceRequestDTO.IPAddress            = payLoads[8];
                serviceRequestDTO.IDTPPIN              = payLoads[9];
                serviceRequestDTO.EndToEndID           = payLoads[10];
                serviceRequestDTO.SendingBankTxId      = payLoads[11];
                serviceRequestDTO.SendingBankReference = payLoads[12];
                serviceRequestDTO.MessageID            = payLoads[13];

                string SenderAccNo = "22245612345678912", ReceiverAccNo = "33345612345678912", SendingBankRoutingNo = "098764123",
                       ReceivingBankRoutingNo = "987543211";
                int senderId = 1, receiverId = 2, SenderBankId = 1, ReceiverBankId = 2;



                using (SqlConnection connection = new SqlConnection(ConnectionString)) {
                    connection.Open();
                    SqlCommand sql_cmnd = new SqlCommand(spname, connection);
                    sql_cmnd.CommandType = CommandType.StoredProcedure;
                    #region params
                    sql_cmnd.Parameters.AddWithValue("@SenderAccNo", SqlDbType.VarChar).Value            = SenderAccNo;
                    sql_cmnd.Parameters.AddWithValue("@ReceiverAccNo", SqlDbType.VarChar).Value          = ReceiverAccNo;
                    sql_cmnd.Parameters.AddWithValue("@Amount", SqlDbType.Decimal).Value                 = 1.1;
                    sql_cmnd.Parameters.AddWithValue("@PaymentNote", SqlDbType.VarChar).Value            = "Test";
                    sql_cmnd.Parameters.AddWithValue("@EndToEndID", SqlDbType.VarChar).Value             = "E2Esblasd1231422";
                    sql_cmnd.Parameters.AddWithValue("@MessageID", SqlDbType.VarChar).Value              = "REFSENBsblasd1231422";
                    sql_cmnd.Parameters.AddWithValue("@SendingBankRoutingNo", SqlDbType.VarChar).Value   = SendingBankRoutingNo;
                    sql_cmnd.Parameters.AddWithValue("@ReceivingBankRoutingNo", SqlDbType.VarChar).Value = ReceivingBankRoutingNo;
                    sql_cmnd.Parameters.AddWithValue("@ReferenceIDTP", SqlDbType.VarChar).Value          = serviceRequestDTO.ReferenceIDTP;
                    sql_cmnd.Parameters.AddWithValue("@IPAddress", SqlDbType.VarChar).Value              = "192.156.98.71";
                    sql_cmnd.Parameters.AddWithValue("@LatLong", SqlDbType.VarChar).Value                = "23.8103° N, 90.4125° E";
                    sql_cmnd.Parameters.AddWithValue("@MobileNumber", SqlDbType.VarChar).Value           = "+8801987456789";
                    sql_cmnd.Parameters.AddWithValue("@TransactionTypeId", SqlDbType.Int).Value          = 1;
                    sql_cmnd.Parameters.AddWithValue("@ReferernceNumber", SqlDbType.VarChar).Value       = "REF12364564675876";
                    sql_cmnd.Parameters.AddWithValue("@senderId", SqlDbType.BigInt).Value                = senderId;
                    sql_cmnd.Parameters.AddWithValue("@receiverId", SqlDbType.BigInt).Value              = receiverId;
                    sql_cmnd.Parameters.AddWithValue("@SenderBankId", SqlDbType.Int).Value               = SenderBankId;
                    sql_cmnd.Parameters.AddWithValue("@ReceiverBankId", SqlDbType.Int).Value             = ReceiverBankId;
                    sql_cmnd.Parameters.AddWithValue("@FeeAmount", SqlDbType.Decimal).Value              = 0;
                    sql_cmnd.Parameters.AddWithValue("@VATAmount", SqlDbType.Decimal).Value              = 0;
                    sql_cmnd.Parameters.AddWithValue("@SendingBankReference", SqlDbType.VarChar).Value   = "SBL1REF";;
                    sql_cmnd.Parameters.AddWithValue("@SendingPSPReference", SqlDbType.VarChar).Value    = "";
                    sql_cmnd.Parameters.AddWithValue("@ReceivingBankReference", SqlDbType.VarChar).Value = "1234567890";
                    sql_cmnd.Parameters.AddWithValue("@ReceivingPSPReference", SqlDbType.VarChar).Value  = "";
                    #endregion
                    sql_cmnd.ExecuteNonQuery();
                    connection.Close();
                }
            }
            catch (Exception ex) {
                throw ex;
            }
        }
 public void SetTransValue(TransactionDTOReq value)
 {
     _blockingTransCollection.Add(value);
 }