Example #1
0
        public async Task <BaseApiResponse> AddBankCard(AddBankCardRequest request)
        {
            request.CheckNotNull(nameof(request));

            TryInitUserModel();

            var bankCardViewModel = new BankCardViewModel
            {
                WalletId  = _wallet.Id,//怎样获取钱包ID
                BankName  = request.BankName,
                OwnerName = request.OwnerName,
                Number    = request.Number
            };
            var command = bankCardViewModel.ToAddBankCardCommand();

            var result = await ExecuteCommandAsync(command);

            if (!result.IsSuccess())
            {
                return(new BaseApiResponse {
                    Code = 400, Message = "命令没有执行成功:{0}".FormatWith(result.GetErrorMessage())
                });
            }
            return(new BaseApiResponse());
        }
        public static AddBankCardCommand ToAddBankCardCommand(this BankCardViewModel bankcardViewModel)
        {
            var command = new AddBankCardCommand(
                bankcardViewModel.WalletId,
                bankcardViewModel.BankName,
                bankcardViewModel.OwnerName,
                bankcardViewModel.Number);

            return(command);
        }
        public ActionResult PutBankCard(string id, BankCardViewModel bankCardViewModel)
        {
            if (id != bankCardViewModel.Id)
            {
                return(BadRequest());
            }

            var bankCardList = _context.BankCards.Where(x => x.UserId.ToString() == bankCardViewModel.UserId).ToList();

            // Kiểm tra có trùng tên với tối đa 5 tài khoản và phải khác số tài khoản

            if (bankCardList.Count >= 5)
            {
                return(BadRequest(new ResponseResult("Bạn đã liên kết tối đa số tài khoản là 5 rồi!")));
            }

            foreach (var bank in bankCardList)
            {
                if (bank.FullNameOwner != bankCardViewModel.FullNameOwner)
                {
                    return(BadRequest(new ResponseResult("Tên của chủ tài khoản phải trùng với những thẻ còn lại!")));
                }

                if (bank.BankAccountNumber == bankCardViewModel.BankAccountNumber)
                {
                    return(BadRequest(new ResponseResult("Số tài khoản đã tồn tại!")));
                }
            }

            // Kiểm tra toàn bộ tài khoản còn lại xem có trùng stk
            var otherBank = _context.BankCards.Where(x => x.UserId.ToString() != bankCardViewModel.UserId && x.BankAccountNumber == bankCardViewModel.BankAccountNumber).ToList();

            if (otherBank.Count != 0)
            {
                return(BadRequest(new ResponseResult("Số tài khoản đã tồn tại!")));
            }



            var bankCard = _context.BankCards.Find(bankCardViewModel.Id);

            bankCard.BankAccountNumber = bankCardViewModel.BankAccountNumber;
            bankCard.BankBranch        = bankCardViewModel.BankBranch;
            bankCard.BankName          = bankCardViewModel.BankName;
            bankCard.FullNameOwner     = bankCardViewModel.FullNameOwner;



            try
            {
                _context.BankCards.Update(bankCard);
                _context.SaveChanges();
                return(Ok(new ResponseResult("Cập nhật ngân hàng thành công!")));
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BankCardExists(id))
                {
                    return(BadRequest(new ResponseResult("Không tìm thấy thông tin thẻ này!")));
                }
                else
                {
                    return(BadRequest(new ResponseResult("Lỗi không xác định!")));
                }
            }
        }