/// <summary> /// استعلام کارت مقصد در عملبات کارت به کارت /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <ServiceResultClient> FundInquiryRequestAsync(FundTransferRequest model) { try { var fundInquiry = new FundInquiry(model.CustomerId); var fundInquiryIn = new fundInquiryIn() { authInfo = new authInfo() { userName = Request.AuthInfo.Username, password = Request.AuthInfo.Password } }; fundInquiryIn.merchantID = Request.MerchantID; fundInquiryIn.terminalID = Request.TerminalID; fundInquiryIn.date = Request.Date; fundInquiryIn.time = Request.Time; fundInquiryIn.localIP = Request.LocalIP; fundInquiryIn.PAN = model.PAN; fundInquiryIn.PINBlock = model.PINBlock; fundInquiryIn.serial = Request.Serial; fundInquiryIn.STAN = Request.STAN; fundInquiryIn.custMobile = Request.Mobile; fundInquiryIn.invoiceNo = Request.InvoiceNo; fundInquiryIn.amount = model.Amount; fundInquiryIn.destPAN = model.DestPAN; SoapMobileClient soapMobileClient = new SoapMobileClient(); var resultFundTransfer = soapMobileClient.fundInquiry(fundInquiryIn); var resultRequestCPMessage = TransactionMessage(resultFundTransfer.responseCode, resultFundTransfer.responseMsg); if (resultRequestCPMessage.Status != TransactionStatus.SuccessfulTransaction.ToString()) { fundInquiry.Success = false; fundInquiry.RefNo = resultFundTransfer.refNo; fundInquiry.Fullname = string.Empty; return(resultRequestCPMessage); } else { fundInquiry.Success = true; return(new ServiceResultClient() { Status = TransactionStatus.SuccessfulTransaction.ToString(), RefNo = fundInquiry.RefNo, Date = fundInquiry.Date, Message = resultFundTransfer.firstName + " " + resultFundTransfer.lastName, ClientRefNo = fundInquiryIn.STAN }); } } catch (Exception ex) { return(AppGlobal.ServiceResultClientInstance(true, "عملیات نا موفق")); } }
public IActionResult Post([FromBody] FundTransferRequest model) { var result = repository.AmountTransfer(model); if (!result) { return(NotFound("Error in Amount transfer")); } return(Ok(result)); }
public bool AmountTransfer(FundTransferRequest model) { var dbcontext = new OnlinebankingContext(); var amountTransfer = new AmountTransfer(); AmountTransfer objAmt = new AmountTransfer(); var Frmbalance = new OnlinebankingContext().Account.Where(x => x.AccountNo == model.CustAccountNo).OrderByDescending(x => x.Created.Value).Select(x => x.Amount).FirstOrDefault(); if (Frmbalance < model.Amount || Frmbalance < 0 || Frmbalance == null) { return(false); } else { var Tobalance = new OnlinebankingContext().Account.Where(x => x.AccountNo == model.BenAccountNo).OrderByDescending(x => x.Created.Value).Select(x => x.Amount).FirstOrDefault(); decimal FromAccountBalance = Convert.ToDecimal(Frmbalance) - Convert.ToDecimal(model.Amount); decimal ToAccountBalance = Convert.ToDecimal(Tobalance) + Convert.ToDecimal(model.Amount); objAmt.FromAccount = model.CustAccountNo; objAmt.ToAccount = model.BenAccountNo; objAmt.Amount = model.Amount; objAmt.Created = DateTime.Now; dbcontext.AmountTransfer.Add(objAmt); int id = dbcontext.SaveChanges(); if (id > 0) { Account obj = new Account(); obj.AccountNo = model.CustAccountNo; obj.Amount = FromAccountBalance; obj.Created = DateTime.Now; dbcontext.Account.Add(obj); int frmid = dbcontext.SaveChanges(); if (frmid > 0) { Account obj1 = new Account(); obj1.AccountNo = model.BenAccountNo; obj1.Amount = ToAccountBalance; obj1.Created = DateTime.Now; dbcontext.Account.Add(obj1); dbcontext.SaveChanges(); } return(true); } } return(false); }
public async Task <ServiceResultClient> FundTransferRequest(FundTransferRequest model) { return(await TransactionService.FundTransferRequestAsync(model)); }
/// <summary> /// عملبات کارت به کارت /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <ServiceResultClient> FundTransferRequestAsync(FundTransferRequest model) { try { var fundTransfer = new FundTransfer(model.CustomerId); var fundTransferIn = new fundTransferIn() { authInfo = new authInfo() { userName = Request.AuthInfo.Username, password = Request.AuthInfo.Password } }; fundTransfer.MerchantID = fundTransferIn.merchantID = Request.MerchantID; fundTransferIn.terminalID = Request.TerminalID; fundTransfer.Date = fundTransferIn.date = Request.Date; fundTransfer.Time = fundTransferIn.time = Request.Time; fundTransferIn.localIP = Request.LocalIP; fundTransfer.PAN = fundTransferIn.PAN = model.PAN; fundTransferIn.PINBlock = model.PINBlock; fundTransferIn.serial = Request.Serial; fundTransfer.STAN = fundTransferIn.STAN = Request.STAN; fundTransfer.Track2Ciphered = model.Track2Ciphered; fundTransferIn.custMobile = Request.Mobile; fundTransfer.InvoiceNo = fundTransferIn.invoiceNo = Request.InvoiceNo; fundTransfer.Amount = fundTransferIn.amount = model.Amount; fundTransfer.DestPAN = fundTransferIn.destPAN = model.DestPAN; fundTransfer.DualData = fundTransferIn.dualData; fundTransfer.VerificationCod = fundTransferIn.verificationCode; SoapMobileClient soapMobileClient = new SoapMobileClient(); var resultFundTransfer = soapMobileClient.fundTransfer(fundTransferIn); var resultRequestCPMessage = TransactionMessage(resultFundTransfer.responseCode, resultFundTransfer.responseMsg); if (resultRequestCPMessage.Status != TransactionStatus.SuccessfulTransaction.ToString()) { fundTransfer.Success = false; fundTransfer.RefNo = resultFundTransfer.refNo; fundTransfer.Amount = resultFundTransfer.responseMsg; return(resultRequestCPMessage); } else { var settleReverseIn = new settleReverseIn() { authInfo = fundTransferIn.authInfo, custMobile = fundTransferIn.custMobile, date = fundTransferIn.date, localIP = fundTransferIn.localIP, merchantID = fundTransferIn.merchantID, orgRefNo = resultFundTransfer.refNo, terminalID = fundTransferIn.terminalID, serial = fundTransferIn.serial, time = fundTransferIn.time, orgAmount = fundTransferIn.amount, transType = "request", STAN = fundTransferIn.STAN, version = fundTransferIn.version }; var resultSettlement = soapMobileClient.settlement(settleReverseIn); var resultSettlementMessage = TransactionMessage(resultSettlement.responseCode, resultSettlement.responseMsg); resultSettlementMessage.ClientRefNo = settleReverseIn.STAN; resultSettlementMessage.Date = settleReverseIn.date; resultSettlementMessage.RefNo = settleReverseIn.orgRefNo; resultSettlementMessage.Time = settleReverseIn.time; fundTransfer.Success = true; return(resultSettlementMessage); } } catch (Exception) { return(AppGlobal.ServiceResultClientInstance(true, "عملیات نا موفق")); } }