Exemple #1
0
        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));
        }
Exemple #2
0
        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"));
            }
        }
Exemple #3
0
        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());
            }
        }
Exemple #4
0
        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 });
        }