private CreditTransfer getCreditTransfer() { var segments = extractSegment(ppay.CreditTransferTag); if (!segments.Any()) { return null; } var result = new CreditTransfer(); foreach (var item in segments) { switch (item.Id) { case ppay.AIDTag: result.CustomerPresentedQR = item.Value == ppay.CustomerPresented; break; case ppay.MobileTag: const int SkipTagId = 2; result.MobileNumber = item.Value.Substring(SkipTagId); break; case ppay.NationalIdOrTaxIdTag: result.NationalIdOrTaxId = item.Value; break; case ppay.EWalletTag: result.EWalletId = item.Value; break; case ppay.OTATag: result.OTA = item.Value; break; default: break; } } return result; }
public ActionResult SaveCreditTransfer(CreditTransfer data) { data.BranchId = 1; data.UserId = (int)Session["UserId"]; data.DateAdded = DateTime.Now; db.CreditTransfers.Add(data); db.SaveChanges(); return(View("CreditTransfer")); }
public async Task <IActionResult> Post([FromBody] CreditTransfer creditTransfer) { var beer = await beerService.GetBeerById(creditTransfer.BeerId); if (beer == null) { return(BadRequest("invalid beerId")); } beer.CreatedBy = creditTransfer.CreditReceiver; await beerService.UpdateBeer(beer); return(Ok()); }
public ActionResult UpdateCreditTransfer(CreditTransfer data) { CreditTransfer item = db.CreditTransfers.Find(data.Id); var entry = db.CreditTransfers.Find(data.Id); entry.AccountNo = data.AccountNo; entry.Payer = data.Payer; //if (item != null) //{ // item.AccountNo = data.AccountNo; // // item.Payer = data.Payer; // UpdateModel(item); // db.SaveChanges(); //} db.SaveChanges(); return(View("ChangePayer")); }
public QrBuilder SetCreditTransfer(CreditTransfer transfer) { creditTransfer = transfer; billPayment.NationalIdOrTaxId = creditTransfer.NationalIdOrTaxId; var value = getValue(); var digits = value.GetLength(); removeMerchantRecordsIfExists(); Add($"{ppay.CreditTransferTagId}{digits}{value}"); return(this); string getValue() { var aidRec = formatRecord(ppay.AID, transfer.MerchantPresentedQR ? ppay.MerchantPresented : ppay.CustomerPresented); var mobileRec = createMobileRecord(); var receiverRec = string.IsNullOrWhiteSpace(transfer.NationalIdOrTaxId) ? string.Empty : formatRecord(ppay.NationalOrTaxId, transfer.NationalIdOrTaxId); var eWalletRec = string.IsNullOrWhiteSpace(transfer.EWalletId) ? string.Empty : formatRecord(ppay.EWalletId, transfer.EWalletId); var bankAccRed = string.IsNullOrWhiteSpace(transfer.BankAccount) ? string.Empty : formatRecord(ppay.BankAccountId, transfer.BankAccount); var otaRec = string.IsNullOrWhiteSpace(transfer.OTA) ? string.Empty : formatRecord(ppay.OTAId, transfer.OTA); return($"{aidRec}{mobileRec}{receiverRec}{eWalletRec}{bankAccRed}{otaRec}"); } string createMobileRecord() { if (string.IsNullOrWhiteSpace(transfer.MobileNumber)) { return(string.Empty); } const string Prefix = "0066"; var mobileNo = transfer.MobileNumber; if (!mobileNo.StartsWith(Prefix)) { // HACK: Stupid change prefix (refactor this later) mobileNo = $"{Prefix}{mobileNo.Substring(1)}"; } return(formatRecord(ppay.MobileId, mobileNo)); } }
public string CreateCreditTransferQrCode(CreditTransfer transfer) { creditTransfer = transfer; var value = getValue(); var digits = getLengthDigits(value); removeMerchantRecordsIfExists(); Add($"{ppay.CreditTransferTag}{digits}{value}"); return(SetCyclicRedundancyCheck(new CRC16()).ToString()); string getValue() { var aidRec = formatRecord(ppay.AIDTag, transfer.AID); var mobileRec = createMobileRecord(); var receiverRec = string.IsNullOrWhiteSpace(transfer.NationalIdOrTaxId) ? string.Empty : formatRecord(ppay.NationalIdOrTaxIdTag, transfer.NationalIdOrTaxId); var eWalletRec = string.IsNullOrWhiteSpace(transfer.EWalletId) ? string.Empty : formatRecord(ppay.EWalletTag, transfer.EWalletId); var bankAccRed = string.IsNullOrWhiteSpace(transfer.BankAccount) ? string.Empty : formatRecord(ppay.BankAccountTag, transfer.BankAccount); var otaRec = string.IsNullOrWhiteSpace(transfer.OTA) ? string.Empty : formatRecord(ppay.OTATag, transfer.OTA); return($"{aidRec}{mobileRec}{receiverRec}{eWalletRec}{bankAccRed}{otaRec}"); } string createMobileRecord() { if (string.IsNullOrWhiteSpace(transfer.MobileNumber)) { return(string.Empty); } const string Prefix = "0066"; var mobileNo = transfer.MobileNumber; if (!mobileNo.StartsWith(Prefix)) { // HACK: Stupid change prefix (refactor this later) mobileNo = $"{Prefix}{mobileNo.Substring(1)}"; } return(formatRecord(ppay.MobileTag, mobileNo)); } }
public async Task TransferCreditsAsync(ClaimsPrincipal user, TransferDTOin dto) { using (var transaction = await transfersRepository.BeginTransactionAsync()) { UserGE sender = await _userManager.GetUserAsync(user); if (sender.CreditBalance < dto.Ammount) { throw new ArgumentOutOfRangeException(GlobalConstants.InsufficientFundsError); } UserGE reciever = _userManager.Users.FirstOrDefault(x => x.UserName.ToLower() == dto.RecieverUnameOrPhone.ToLower() || x.PhoneNumber == Helpers.SanitizePhone(dto.RecieverUnameOrPhone)); if (reciever is null) { throw new ArgumentOutOfRangeException(GlobalConstants.UserNotLocatedByPhoneOrUserNameError(dto.RecieverUnameOrPhone)); } else if (reciever.Id == sender.Id) { throw new ArgumentOutOfRangeException(GlobalConstants.AutoSendCreditsError); } sender.CreditBalance -= dto.Ammount; reciever.CreditBalance += dto.Ammount; var transfer = new CreditTransfer { Sender = sender, Reciever = reciever, Ammount = dto.Ammount, Comment = dto.Comment }; sender.TransactionsSent.Add(transfer); cache.Remove(GlobalConstants.StatisticsCasheName); await transfersRepository.SaveChangesAsync(); await transaction.CommitAsync(); } }
public async Task <IActionResult> Post([FromBody] CreditTransfer creditTransfer) { var beer = await beerService.GetBeerById(creditTransfer.BeerId); if (beer == null) { return(BadRequest("invalid beerId")); } var user = $"{User.Claims.Where(c => c.Type == System.Security.Claims.ClaimTypes.GivenName).FirstOrDefault().Value} {User.Claims.Where(c => c.Type == System.Security.Claims.ClaimTypes.Surname).FirstOrDefault().Value}"; if (beer.CreatedBy != user) { return(BadRequest($"Invalid beerId, Beer not owned by user {user}")); } beer.CreatedBy = creditTransfer.CreditReceiver; await beerService.UpdateBeer(beer); return(Ok()); }
public QrBuilder() { billPayment = new BillPayment(); creditTransfer = new CreditTransfer(); qrDataObjects = new List <QrDataObject>(); }
/// <summary> /// กำหนดค่าเริ่มต้นให้กับ ตัวสร้าง QR PromptPay /// </summary> public PromptPayQrBuilder() { qrBuilder = new QrBuilder(); billPayment = new BillPayment(); creditTransfer = new CreditTransfer(); }