public IActionResult PValues() { var currentRoleId = _partnerManager.GetCurrentUserRole(this.HttpContext); var permission = _partActRepo.GetPartAct("PayemntValues.View", currentRoleId); if (permission == null) { _toastNotification.AddErrorToastMessage("ليس لديك الصلاحيات الكافية", new ToastrOptions { Title = "" }); return(Redirect(Request.Headers["Referer"].ToString())); } var model = new PaymentValuesRepo(_db, _partnerManager).GetAll(); return(View(model)); }
public IActionResult RemovePV(double pvalue) { var currentRoleId = _partnerManager.GetCurrentUserRole(this.HttpContext); var permission = _partActRepo.GetPartAct("PayemntValues.Remove", currentRoleId); if (permission == null) { _toastNotification.AddErrorToastMessage("ليس لديك الصلاحيات الكافية", new ToastrOptions { Title = "" }); return(Redirect(Request.Headers["Referer"].ToString())); } var removedObj = new PaymentValuesRepo(_db, _partnerManager).GetSingleOrDefault(pvalue); if (removedObj == null) { _toastNotification.AddErrorToastMessage($"المبلغ {pvalue.ToString("N2")} غير موجود", new ToastrOptions { Title = "" }); return(View("PValues")); } else { var result = new PaymentValuesRepo(_db, _partnerManager).Remove(pvalue); if (result.Success) { _toastNotification.AddSuccessToastMessage($"المبلغ {pvalue.ToString("N2")} تم حذفه", new ToastrOptions { Title = "" }); var audit = new DataAudit(); audit.Activity.Id = "PayemntValues.Remove"; audit.PartnerId = _partnerManager.GetCurrentUserId(this.HttpContext); audit.PartnerAccount = _partnerManager.GetCurrentUserAccount(this.HttpContext); audit.Action.Id = "Delete"; audit.Success = true; audit.OldValue = removedObj.ToString(); audit.NewValue = string.Empty; _auditing.Create(audit); } PValues(); return(View("PValues")); } }
public IActionResult CreatePVs(PaymentValuesDto model) { if (ModelState.IsValid) { if (model.PayValue <= 0) { _toastNotification.AddErrorToastMessage("المبلغ غير صحيح", new ToastrOptions { Title = "" }); return(View()); } if (model.ProfileId <= 0) { _toastNotification.AddErrorToastMessage("رقم المعرف غير صحيح", new ToastrOptions { Title = "" }); return(View()); } var created = new PaymentValues(); created.PayValue = model.PayValue; created.ProfileId = model.ProfileId; created.CreatedBy.Id = _partnerManager.GetCurrentUserId(httpContext: this.HttpContext); created.CreatedBy.Account = _partnerManager.GetCurrentUserAccount(httpContext: this.HttpContext); var result = new PaymentValuesRepo(_db, _partnerManager).Create(created); if (!result.Success) { if (result.AffectedCount == -504) { _toastNotification.AddErrorToastMessage($"المبلغ {model.PayValue.ToString("N2")} موجود مسبقا", new ToastrOptions { Title = "" }); return(Redirect(Request.Headers["Referer"].ToString())); } } PValues(); return(View("PValues")); } else { return(View()); } }
public async Task <RechargeCollection> DoRecharge(RechargeCollection recharge, string endpoint, string apiUser, string apiPassword, string remoteAddress, string successCode) { //Thread.Sleep(2000); int resultCode; string transNo = recharge.ApiTransaction.ToString(); string resultDesc; #region Local test //resultCode = int.Parse(successCode); //resultDesc = "success"; //System.Threading.Thread.Sleep(2000); #endregion Local test var paymentValue = new PaymentValuesRepo(_db, _partnerManager).GetSingleOrDefault(recharge.Amount); double profileId = 0; if (paymentValue != null) { profileId = paymentValue.ProfileId; } else { profileId = Convert.ToInt64(recharge.Amount) * 100; } BasicHttpBinding httpBinding = new BasicHttpBinding(); EndpointAddress p = new EndpointAddress(endpoint); //Start Send Request------------------------------ - var payService = new OCSService.CBSInterfaceAccountMgrClient(httpBinding, p); /// payService = SharedParams.OCSEndpoint; OCSService.PaymentRequestMsg msg = new OCSService.PaymentRequestMsg(); OCSService.RequestHeader reqheader = new OCSService.RequestHeader(); reqheader.SessionEntity = new OCSService.SessionEntityType(); reqheader.SessionEntity.Name = apiUser; reqheader.SessionEntity.Password = apiPassword; reqheader.TransactionId = $"VTU{recharge.Id}"; reqheader.SequenceId = "1"; reqheader.CommandId = "Payment"; reqheader.Version = "1"; reqheader.SerialNo = $"VTU{recharge.Id}"; reqheader.RequestType = OCSService.RequestHeaderRequestType.Event; reqheader.SessionEntity.RemoteAddress = remoteAddress; msg.RequestHeader = reqheader; msg.PaymentRequest = new OCSService.PaymentRequest(); msg.PaymentRequest.SubscriberNo = recharge.SubscriberNo; msg.PaymentRequest.PaymentAmt = Convert.ToInt64(recharge.Amount) * 100; msg.PaymentRequest.PaymentMode = "1000"; msg.PaymentRequest.TransactionCode = $"VTU{recharge.Id}"; msg.PaymentRequest.RefillProfileID = profileId.ToString(); try { var requestResult = await payService.PaymentAsync(msg); if (requestResult != null) { resultCode = int.Parse(requestResult.PaymentResultMsg.ResultHeader.ResultCode); resultDesc = requestResult.PaymentResultMsg.ResultHeader.ResultDesc; transNo = requestResult.PaymentResultMsg.PaymentResult.InternalSerialNo; } else { resultCode = -1001; resultDesc = "OCS return null"; transNo = "0"; } } catch (Exception ex) { resultCode = -1000; resultDesc = ex.GetType().Name + "-" + ex.Message; transNo = "0"; } // End Send Request ------------------------------- recharge.Status.Id = resultCode == int.Parse(successCode) ? 1 : 2; recharge.RefNo = resultCode.ToString(); recharge.RefMessage = resultDesc; recharge.RefTransNo = transNo; recharge.RefTime = DateTime.Now; //watch = System.Diagnostics.Stopwatch.StartNew(); return(recharge); //watch.Stop(); //elapsedMs = watch.ElapsedMilliseconds; //return JsonSerializer.Serialize( new { // resultCode = resultCode == int.Parse(successCode) ? 0 : resultCode, // resultDesc = resultDesc, // sequence = transNo, // payId = recharge.Id, // duration = elapsedMs }); }