Esempio n. 1
0
        public async Task <IActionResult> WithDraw(WithDrawViewModel model)
        {
            var amount = await _walletService.GetAmount(CurrentUser);

            if (ModelState.IsValid && model.Amount > 0 && model.Amount <= amount)
            {
                var r = await _transactionService.CreateTransaction(CurrentUser.Type, CurrentUser.Id, model, CurrentUser.Username);

                if (r > 0)
                {
                    ViewBag.Success = "Yêu cầu rút tiền đã được gửi. Vui lòng chờ quản trị duyệt giao dịch.";
                    return(PartialView("WithDrawMessage"));
                }
                else if (r == -2)
                {
                    ViewBag.Error = "Đã tồn tại yêu cầu rút tiền với số tiền tương ứng. Vui lòng chờ duyệt giao dịch";
                }
                else
                {
                    ViewBag.Error = "Không tạo được yêu cầu rút tiền. Vui lòng thử lại";
                }
            }
            else
            {
                ViewBag.Error = "Thông tin rút tiền không chính xác";
            }

            return(PartialView("WithDrawMessage"));
        }
Esempio n. 2
0
        public async Task <IActionResult> WithDraw(WithDrawViewModel model)
        {
            var amount = await _walletService.GetAmount(CurrentUser);

            if (ModelState.IsValid && model.Amount > 0 && model.Amount <= amount)
            {
                var r = await _transactionService.CreateTransaction(CurrentUser.Type, CurrentUser.Id, model, CurrentUser.Username);

                if (r > 0)
                {
                    //r = transaction id
                    //########## create notification added by longhk ##########################################################
                    string _msg  = string.Format("Yêu cầu rút tiền đã được gửi bởi {0}, với số tiền {1}. Cần được duyệt", CurrentUser.Username, model.Amount.ToPriceText());
                    string _data = "Transaction";
                    await _INotificationService.CreateNotification(r, EntityType.System, 0, NotificationType.AgencyWalletWithDraw, _msg, _data);

                    //#########################################################################################

                    this.AddAlertSuccess("Yêu cầu rút tiền đã được gửi. Vui lòng chờ quản trị duyệt giao dịch.");
                }
                else if (r == -2)
                {
                    this.AddAlertDanger("Đã tồn tại yêu cầu rút tiền với số tiền tương ứng. Vui lòng chờ duyệt giao dịch");
                }
                else
                {
                    this.AddAlertDanger("Không tạo được yêu cầu rút tiền. Vui lòng thử lại");
                }
            }
            else
            {
                this.AddAlertDanger("Thông tin rút tiền không chính xác");
            }

            return(RedirectToAction("WithDraw"));
        }
        public async Task <int> CreateTransaction(EntityType entityType, int entityId, WithDrawViewModel model, string username)
        {
            //chua viet can than can review lai -- chi khoi tao transaction - Admin duyet
            var wallet = await _walletRepository.GetWallet(entityType, entityId);

            if (wallet == null)
            {
                return(-1);
            }

            var systemid = await _walletRepository.GetSystemId();

            var data = Newtonsoft.Json.JsonConvert.SerializeObject(new
            {
                BankName    = model.Bank,
                BankNumber  = model.Number,
                BankAccount = model.Name,
                BankBranch  = model.Branch
            });
            var transactionId = await _transactionRepository.CreateTransaction(systemid, wallet.Id, model.Amount, TransactionType.WalletWithdraw,
                                                                               data, model.Note, username);

            return(transactionId);
        }