public CardViewModel(BankCard card) { CardId = card.Id; MaskedNumber = (card.CardNumber.Substring(12)).PadLeft(12, '*'); MoneyAdded = card.MoneyAdded; MoneyRetrieved = card.MoneyRetrieved; }
public string BindBankCard(string Guid, WS_BankCard BankCard) { try { var accId = GetLoginId(Guid); if (accId == 0) { return("请先登录"); } if (!AccountDAL.IsExistsOpenCardName(accId, BankCard.OpenCardName)) { return("新卡与已存在的开户名不一致"); } if (AccountDAL.IsExistsOpenCardNo(accId, BankCard.CardNo)) { return("该卡号已存在"); } var bankCard = new BankCard { AccountId = accId, BankName = BankCard.BankName, CardNo = BankCard.CardNo, City = BankCard.City, CityId = BankCard.CityId, OpenCardName = BankCard.OpenCardName, Province = BankCard.Province, }; AccountDAL.BindBankCard(bankCard); return("true"); } catch (Exception ex) { return(ex.Message); } }
/// <summary> /// Update BankCard And With Task State in Processing /// If model.TaskState==Success this Method Must Reject /// </summary> /// <param name="model"></param> public IActionResponse <int> Update(BankCard model) { var response = new ActionResponse <int>(); var findedBankCard = Find(model.BankCardId); if (!findedBankCard.IsSuccessful) { response.Message = findedBankCard.Message; } else { findedBankCard.Result.UpdateWith(new { model.AccountNumber, model.BankName, model.CardNumber, model.IsEnable }); _uow.Entry(findedBankCard.Result).State = EntityState.Modified; response.Result = _uow.SaveChanges(); response.IsSuccessful = response.Result.ToSaveChangeResult(); response.Message = response.Result.ToSaveChangeMessageResult(BusinessMessage.Success, BusinessMessage.Error); } return(response); }
public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); var card = new BankCard { CardId = 71, ApplicationUser = user, CardNumber = "2341", ReceivingDate = DateTime.Today, ValidUntil = DateTime.Today, ApplicationUserId = user.Id, Currency = "RUB", Balance = 10524 }; db.bankCards.Add(card); if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // Появление этого сообщения означает наличие ошибки; повторное отображение формы return(View(model)); }
public void ShouldValidateViewModelOnSubmit(string merchantId, string currency, string cardHolderName, string cardNumber, string securityCode, int monthExpired, int yearExpired, string expectedError) { // arrange var model = new OnlinePaymentViewModel { MerchantId = new Guid(merchantId), Amount = 1000, Currency = currency, RedirectUrl = "http://test.com", CardHolderName = cardHolderName, CardNumber = cardNumber, SecurityCode = securityCode, MonthExpired = monthExpired, YearExpired = yearExpired }; var bankCard = new BankCard("123", "0000", "EVGENY SHMANEV", "12345", 1, 2020); _bankCardService.Setup(x => x.FindBankCard("12345")).Returns(bankCard); var merchant = new Merchant("merchant", "test@com", "pass", new Guid("E5310F8F-117B-4D60-8239-39A42A94ADC9"), "store", "contact"); var account = merchant.AddAccount("9876543210", "USD"); _merchantService.Setup(x => x.FindMerchant(merchant.MerchantId)).Returns(merchant); // act var result = _controller.Payment(model).Result; // assert result.ShouldBeOfType <ViewResult>(); _controller.ModelState.IsValid.ShouldBeFalse(); _controller.ModelState.ShouldContain(x => x.Value.Errors.Any(error => error.ErrorMessage == expectedError)); }
public async Task ThrowArgumentNullException_WhenWithdrawCardDateIsExpired() { var contextOptions = new DbContextOptionsBuilder <CasinoContext>() .UseInMemoryDatabase(databaseName: "ThrowArgumentNullException_WhenWithdrawCardDateIsExpired") .Options; string cardNumber = "0000000000000000"; double amount = 100.2; var newBankCard = new BankCard() { Id = cardNumber, Expiration = new DateTime(2017, 2, 2) }; using (var context = new CasinoContext(contextOptions)) { var cardService = new CardService(context); await context.BankCards.AddAsync(newBankCard); await context.SaveChangesAsync(); await Assert.ThrowsExceptionAsync <CardExpirationException>( () => cardService.Withdraw(cardNumber, amount) ); } }
/// <summary> /// 修改 /// </summary> /// <param name="bankCard"></param> /// <returns></returns> public String Update(BankCard bankCard) { try { int result = new BLBankCard().Update(bankCard); if (result > 0) { return(JsonConvert.JavaScriptSerializer(new ExtResult() { success = true, msg = "修改成功" })); } else { return(JsonConvert.JavaScriptSerializer(new ExtResult() { success = false, msg = "修改失败" })); } } catch (Exception ex) { return(JsonConvert.JavaScriptSerializer(new ExtResult() { success = false, msg = "修改失败,失败原因:" + ex.Message })); } }
/// <summary> /// Data input /// </summary> /// <returns>Bank card</returns> private static BankCard CreateBankCard() { int Num = Number; Console.WriteLine("\nБанковская карта:"); Console.WriteLine("Введите имя:"); string Name = Console.ReadLine(); Console.WriteLine("Введите фамилию:"); string Surname = Console.ReadLine(); Console.WriteLine("Введите дату окончания действия:"); DateTime EndOfAction = Convert.ToDateTime(Console.ReadLine()); Console.WriteLine("Введите наименование банка:"); string BankName = Console.ReadLine(); Console.WriteLine("Введите номер карты:"); string CardNumber = Console.ReadLine(); Console.WriteLine("Введите тип карты:"); string CardType = Console.ReadLine(); Console.WriteLine("Введите CVC-код"); int CVC = Convert.ToInt32(Console.ReadLine()); BankCard bankCard = new BankCard(Name, Surname, Num, EndOfAction, BankName, CardNumber, CardType, CVC); cards.Add(bankCard); Console.WriteLine("Ваша карта:\n" + bankCard.ToString()); return(bankCard); }
public async Task ReturnTrue_WhenCardExistsInDatabase() { var userStoreMock = new Mock <IUserStore <User> >(); var userManager = new UserManager <User>(userStoreMock.Object, null, null, null, null, null, null, null, null); var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "ReturnTrue_WhenCardExistsInDatabase") .UseInternalServiceProvider(serviceProvider) .Options; var user = new User(); var card = new BankCard(); using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { await bedeSlotsContext.BankCards.AddAsync(card); await bedeSlotsContext.SaveChangesAsync(); } using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { var sut = new Data.CardService(bedeSlotsContext, userManager); Assert.IsTrue(sut.CardExists(card.Id)); } }
public async Task ReturnCardNumberDto_WhenValidId() { var userStoreMock = new Mock <IUserStore <User> >(); var userManager = new UserManager <User>(userStoreMock.Object, null, null, null, null, null, null, null, null); var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "ReturnCardNumberDto_WhenValidId") .UseInternalServiceProvider(serviceProvider) .Options; var user = new User(); var card = new BankCard() { Id = 1, Number = "1111111111111111" }; CardNumberDto result; using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { var sut = new Data.CardService(bedeSlotsContext, userManager); await bedeSlotsContext.BankCards.AddAsync(card); await bedeSlotsContext.SaveChangesAsync(); result = await sut.GetCardNumberByIdAsync(card.Id); } Assert.IsTrue(result.Number == card.Number.Substring(12)); Assert.IsInstanceOfType(result, typeof(CardNumberDto)); }
public void DeleteCardById_ShouldWorkCorrectly() { // Arrange var unitOfWorkMock = new Mock <IEfUnitOfWork>(); var mapperMock = new Mock <IMappingProvider>(); var userServiceMock = new Mock <IUserService>(); var genericRepoMock = new Mock <IEfGenericRepository <BankCard> >(); var bankCardService = new BankCardService (unitOfWorkMock.Object, mapperMock.Object, userServiceMock.Object, genericRepoMock.Object); var card = new BankCard(); genericRepoMock.Setup(x => x.GetById(It.IsAny <int>())).Returns(card); genericRepoMock.Setup(x => x.Delete(It.IsAny <BankCard>())).Verifiable(); unitOfWorkMock.Setup(x => x.SaveChanges()).Verifiable(); // Act bool result = bankCardService.DeleteCardById(1); // Assert genericRepoMock.Verify(x => x.Delete(It.IsAny <BankCard>()), Times.Once); unitOfWorkMock.Verify(x => x.SaveChanges(), Times.Once); Assert.AreEqual(true, result); }
public APIResponse Bind(BindBankCardModel model) { var bank = CurrentDb.Bank.Where(m => m.Id == model.BankId).FirstOrDefault(); if (bank == null) { return(ResponseResult(ResultType.Failure, ResultCode.FailureNoData, "没有数据")); } BankCard bankCard = new BankCard(); bankCard.UserId = model.UserId; bankCard.MerchantId = model.MerchantId; bankCard.BankId = bank.Id; bankCard.BankCode = bank.Code; bankCard.BankName = bank.Name; bankCard.BankAccountName = model.BankAccountName; bankCard.BankAccountNo = model.BankAccountNo; bankCard.BankAccountPhone = model.BankAccountPhone; CurrentDb.BankCard.Add(bankCard); CurrentDb.SaveChanges(); APIResult result = new APIResult() { Result = ResultType.Success, Code = ResultCode.Success, Message = "绑定成功" }; return(new APIResponse(result)); }
public async Task ReturnEmptyCollectionOfCardNumberAssociatedWithUserId_WhenValidUserIdIsPassed() { var userStoreMock = new Mock <IUserStore <User> >(); var userManager = new UserManager <User>(userStoreMock.Object, null, null, null, null, null, null, null, null); ICollection <CardNumberDto> cards; Data.CardService cardService; var user = new User(); var card = new BankCard() { UserId = user.Id, CvvNumber = "123", Number = "1616161616161616", Type = CardType.Visa }; var contextOptions = new DbContextOptionsBuilder <BedeSlotsDbContext>() .UseInMemoryDatabase(databaseName: "ReturnCollectionOfCardNumberAssociatedWithUserId_WhenValidUserIdIsPassed") .UseInternalServiceProvider(serviceProvider).Options; using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { bedeSlotsContext.Users.Add(user); bedeSlotsContext.SaveChanges(); } using (var bedeSlotsContext = new BedeSlotsDbContext(contextOptions)) { cardService = new Data.CardService(bedeSlotsContext, userManager); cards = await cardService.GetUserCardsAllNumbersAsync(user.Id); Assert.IsTrue(cards.Count == 0); } }
static void Main(string[] args) { BankCard card1 = new BankCard(); card1.SetCardNumber("123"); card1.SetCardNumber("12345678"); card1.AddMoney(50); card1.AddMoney(0.5); card1.PrintAccountBalance(); card1.SubtractMoney(50); card1.PrintAccountBalance(); card1.SubtractMoney(50); Console.WriteLine(); BankCard card2 = new BankCard(100, "Visa"); card2.SetCardNumber("xys"); card2.SetCardNumber("87654321"); card2.AddMoney(100); card2.PrintAccountBalance(); card2.SubtractMoney(200); card2.PrintAccountBalance(); card2.SubtractMoney(10); }
/// <summary> /// 银行卡转账 /// </summary> /// <param name="bankCard">转出的银行卡信息</param> /// <param name="outBankCard">转入的银行卡编号</param> /// <returns></returns> public String Transfer(BankCard bankCard, decimal inBankCard) { try { bankCard.Id = Guid.NewGuid().ToString(); bankCard.SaveType = 1000200002;//取出 bankCard.CreateTime = bankCard.UpdateTime = DateTime.Now; bankCard.CreateBy = bankCard.UpdateBy = CurrentUser.Id; new BLBankCard().Add(bankCard); bankCard.Id = Guid.NewGuid().ToString(); bankCard.BankType = inBankCard; bankCard.SaveType = 1000200001;//存入 new BLBankCard().Add(bankCard); return(JsonConvert.JavaScriptSerializer(new ExtResult() { success = true, msg = "操作成功" })); } catch (Exception ex) { return(JsonConvert.JavaScriptSerializer(new ExtResult() { success = false, msg = "操作失败," + ex.Message })); } }
public async Task DepositSuccesfully() { var contextOptions = new DbContextOptionsBuilder <CasinoContext>() .UseInMemoryDatabase(databaseName: "DepositSuccesfully") .Options; string cardNumber = "0000000000000000"; double amount = 100.2; var newBankCard = new BankCard() { Id = cardNumber, Expiration = new DateTime(2019, 2, 2) }; using (var context = new CasinoContext(contextOptions)) { var cardService = new CardService(context); await context.BankCards.AddAsync(newBankCard); await context.SaveChangesAsync(); await cardService.Deposit(cardNumber, amount); Assert.IsTrue(newBankCard.MoneyAdded == amount); } }
/// <summary> /// 自动计算对象的余额,isAdd只能是新增或者删除 /// 如果需要修改就先删除再新增 /// </summary> /// <param name="index"></param> /// <returns></returns> public BankCard CalcBalance(BankCard index, Boolean isAdd) { Diction dic = new DLDiction().Select(index.BankType); var bal = dic.Note.GetDouble(); if (isAdd) { //新增 if (index.SaveType == 1000200001)//存入 { bal += index.Price; } else { bal -= index.Price; } } else { //删除 if (index.SaveType == 1000200001)//存入 { bal -= index.Price; } else { bal += index.Price; } } dic.Note = bal.GetString(); index.Balance = bal; new DLDiction().Update(dic); return(index); }
public JsonResult EditBankCard(BankCard entity) { if (entity == null) { return(Json(new { IsOk = false, Msg = "没有提交任何数据" })); } if (entity.BankCity == null) { entity.BankCity = ""; } if (entity.Province == null) { entity.Province = ""; } if (FacadeManage.aideAccountsFacade.EditBankCard(entity) > 0) { return(Json(new { IsOk = true, Msg = "操作成功" })); } return(Json(new { IsOk = false, Msg = "操作失败" })); }
///// <summary> ///// 2.36. 电子账户开户及支付签约(监管) ///// </summary> ///// <param name="member"></param> ///// <param name="bankCard"></param> ///// <returns></returns> //public BCifAcctNoOpenResponse CreateAccount(Member member, BankCard bankCard) //{ // BCifAcctNoOpenRequest request = new BCifAcctNoOpenRequest(); // request.Head.ReqJnlNo = GuidHelper.GenUniqueId(); // request.Body.CifAddr = member.Address; // request.Body.CifClientId = member.ClientId; // request.Body.CifEnName = member.EnName; // request.Body.CifIdExpiredDate = member.IdExpiredDate.ToDateTime().ToString("yyyyMMdd"); // request.Body.CifName = member.Name; // request.Body.CifPhoneCode = member.Mobile; // request.Body.CifPostCode = member.PostCode; // request.Body.IdNo = member.IDNumber; // request.Body.IdType = "P00"; // request.Body.OperateType = "0"; // request.Body.ProvinceCode = member.ProvinceCode; // request.Body.CityCode = member.CityCode; // request.Body.NetCheckFlag = "1"; // request.Body.BankCardPhoneCode = member.Mobile; // request.Body.BankCardType = "1"; // request.Body.BankAcNo = bankCard.BankCardNumber; // request.Body.BankName = bankCard.BankName; // request.Body.SubBranchName = bankCard.BankName; // request.Body.OpenChannel = "1"; // var result = guangDaExec.Exec(request) as BCifAcctNoOpenResponse; // return result; //} /// <summary> /// 2.59. 鉴权开户接口 /// </summary> /// <param name="member"></param> /// <param name="bankCard"></param> /// <returns></returns> public AuthenticationToOpenAccountResponse CreateAccount(Member member, BankCard bankCard) { AuthenticationToOpenAccountRequest request = new AuthenticationToOpenAccountRequest(); request.Head.ReqJnlNo = GuidHelper.GenUniqueId(); request.Body.CoPatrnerJnlNo = member.AccountGuangDa.CoPatrnerJnlNo; request.Body.CifName = member.Name; request.Body.CifClientId = member.ClientId; request.Body.IdType = "P00"; request.Body.IdNo = member.IDNumber; request.Body.BankCardPhoneCode = member.AccountGuangDa.Mobile; request.Body.CifPhoneCode = member.AccountGuangDa.Mobile; request.Body.CifIdExpiredDate = member.AccountGuangDa.IdExpiredDate.ToDateTime().ToString("yyyyMMdd"); request.Body.CifAddr = member.AccountGuangDa.Address; request.Body.CifPostCode = member.AccountGuangDa.PostCode; request.Body.CifEnName = member.AccountGuangDa.EnName; request.Body.CifENFName = member.AccountGuangDa.EnName; request.Body.OperateType = "0"; request.Body.NetCheckFlag = "1"; request.Body.BankCardType = "1"; request.Body.BankAcNo = bankCard.BankCardNumber; request.Body.BankName = bankCard.BankName; request.Body.SubBranchName = bankCard.BankName; request.Body.OpenChannel = "1"; request.Body.BookDate = member.AccountGuangDa.BookDate.ToDateTime().ToString("yyyyMMdd"); request.Body.Reserve1 = member.AccountGuangDa.Occupation; request.Body.Reserve2 = member.AccountGuangDa.GuangDaArea.Code; var result = guangDaExec.Exec(request) as AuthenticationToOpenAccountResponse; return(result); }
public async Task WidthdrawSucessuly() { var contextOptions = new DbContextOptionsBuilder <CasinoContext>() .UseInMemoryDatabase(databaseName: "WidthdrawSucessuly") .Options; string cardId = "0000000000000000"; double amount = 100.2; var newBankCard = new BankCard() { Id = cardId, Expiration = new DateTime(2019, 2, 2) }; using (var context = new CasinoContext(contextOptions)) { var cardService = new CardService(context); await context.BankCards.AddAsync(newBankCard); await context.SaveChangesAsync(); await cardService.Withdraw(cardId, amount); Assert.IsTrue(newBankCard.MoneyRetrieved == amount); } }
public ActionResult CloseAccount(int accountId) { using (var _context = new ApplicationDbContext()) { var account2remove = _context.Accounts.Single(a => a.Id == accountId); if (account2remove is LendingAccount) { if (account2remove.Balance < 0) { return(RedirectToAction("Index", "LoggedIn")); } } if (account2remove is CurrentAccount) { CurrentAccount account = account2remove as CurrentAccount; if (account.HasCard()) { BankCard card = _context.BankCards.Single(c => c.ParentAccount.Id == accountId); _context.BankCards.Remove(card); } } _context.Accounts.Remove(account2remove); _context.SaveChanges(); } return(RedirectToAction("Index", "LoggedIn")); }
public object CheckBankCard() { BankCard checker = new BankCard("e064e35a9b6b4944a1866f910a874228"); var response = checker.GetResult("李伟", "62284809385785843878", "362422199707056732", "18870214696"); return(response); }
/// <summary> /// Method for adding a new entry in xml-file /// </summary> /// <param name="card">Bank card</param> public void XMLCreateBankCard(BankCard card) { XmlDocument xDoc = new XmlDocument(); xDoc.Load(@"../../XMLFileCardInf.xml"); XmlElement xRoot = xDoc.DocumentElement; XmlElement userElem = xDoc.CreateElement("bankCard"); XmlElement a1 = xDoc.CreateElement("number"); XmlElement a2 = xDoc.CreateElement("surname"); XmlElement a3 = xDoc.CreateElement("name"); XmlElement a4 = xDoc.CreateElement("endOfAction"); XmlElement a5 = xDoc.CreateElement("bankName"); XmlElement a6 = xDoc.CreateElement("cardNumber"); XmlElement a7 = xDoc.CreateElement("cardType"); XmlElement a8 = xDoc.CreateElement("cvc"); a1.AppendChild(xDoc.CreateTextNode(card.Number.ToString())); a2.AppendChild(xDoc.CreateTextNode(card.Surname)); a3.AppendChild(xDoc.CreateTextNode(card.Name)); a4.AppendChild(xDoc.CreateTextNode(card.EndOfAction.ToShortDateString())); a5.AppendChild(xDoc.CreateTextNode(card.BankName)); a6.AppendChild(xDoc.CreateTextNode(card.CardNumber)); a7.AppendChild(xDoc.CreateTextNode(card.CardType)); a8.AppendChild(xDoc.CreateTextNode(card.CVC.ToString())); userElem.AppendChild(a1); userElem.AppendChild(a2); userElem.AppendChild(a3); userElem.AppendChild(a4); userElem.AppendChild(a5); userElem.AppendChild(a6); userElem.AppendChild(a7); userElem.AppendChild(a8); xRoot.AppendChild(userElem); xDoc.Save(@"../../XMLFileCardInf.xml"); }
public async Task SucesGetAllCards() { var contextOptions = new DbContextOptionsBuilder <CasinoContext>() .UseInMemoryDatabase(databaseName: "SucesGetAllCards") .Options; string userId = "userId"; var newBankCard = new BankCard() { UserId = "userId", }; DateTime expiration = new DateTime(2019, 11, 10); using (var context = new CasinoContext(contextOptions)) { var cardService = new CardService(context); await context.BankCards.AddAsync(newBankCard); await context.SaveChangesAsync(); var card = await cardService.GetAllCards(userId); Assert.AreEqual(1, card.Count()); } }
public async Task <IActionResult> PutBankCard(int id, BankCard bankCard) { if (id != bankCard.Id) { return(BadRequest()); } var editableCard = _context.BankCards.Include(b => b.BankAccount).First(c => c.Id == id); editableCard.Amount += bankCard.Amount; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BankCardExists(id)) { return(NotFound()); } else { throw; } } return(Ok(editableCard)); }
public async Task SucesRemoveingCard() { var contextOptions = new DbContextOptionsBuilder <CasinoContext>() .UseInMemoryDatabase(databaseName: "SucesGetAllCard") .Options; string cardNumber = "0000000000000000"; var newBankCard = new BankCard() { CardNumber = cardNumber }; DateTime expiration = new DateTime(2019, 11, 10); using (var context = new CasinoContext(contextOptions)) { var cardService = new CardService(context); await context.BankCards.AddAsync(newBankCard); await context.SaveChangesAsync(); var card = await cardService.RemoveCard(cardNumber); Assert.IsInstanceOfType(card, typeof(BankCard)); Assert.IsTrue(card.CardNumber == cardNumber); Assert.IsTrue(card.IsDeleted == true); } }
public async Task <ActionResult <BankCard> > PostBankCard(BankCard bankCard) { _context.BankCards.Add(bankCard); await _context.SaveChangesAsync(); return(CreatedAtAction("GetBankCard", new { id = bankCard.Id }, bankCard)); }
public async Task <IActionResult> PutBankCard(int id, BankCard bankCard) { if (id != bankCard.Id) { return(BadRequest()); } _context.Entry(bankCard).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BankCardExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public RefundRequest() { Card = new BankCard(); Amount = 0; Comment = string.Empty; Currency = "USD"; InvoiceId = string.Empty; }
public bool Delete(BankCard bankCard) { db.BankCards.Remove(bankCard); if (Convert.ToBoolean(db.SaveChanges())) { return(true); } return(false); }