// GET: Accounts/Create public ActionResult Create() { //return View(); // //var account = db.Accounts; //var creditCard = db.CreditCards; var vModel = new AccountsCreditsViewModel(); //vModel.account = account; //vModel.creditCard = creditCard; return View(vModel); // }
public ActionResult Create([Bind(Include = "accountID, accountNumber,accountBalance,accountName,accountFirstName,accountLastName,accountAddress,accountCity,accountState,accountZip,accountPhone,accountMax")] Account account, [Bind(Include = "cardID, cardNumber, cardExpirationDate, cardSecurityCode, accountID, firstName, lastName")] CreditCard creditCard) { var vModel = new AccountsCreditsViewModel(); //if (ModelState.IsValid) //{ //db.CreditCards.Add(creditCard); //db.Accounts.Add(account); //db.SaveChanges(); Boolean thereIsAnError = false; if (account.accountBalance > 9999999999999999 || account.accountBalance < -9999999999999999) { ModelState.AddModelError("account.accountBalance", "The balance must between -9999999999999999 and 9999999999999999"); thereIsAnError = true; //return View(vModel.account); } Boolean duplicateCard = checkDuplicateCard(creditCard.cardNumber); if (duplicateCard) { ModelState.AddModelError("creditCard.cardNumber", "The card number you entered matches another card."); ViewBag.accountID = new SelectList(db.Accounts, "accountID", "accountNumber", creditCard.accountID); thereIsAnError = true; } if (thereIsAnError) { return View(vModel.account); } db.Accounts.Add(account); db.SaveChanges(); //The below is to to get the last created accountID and copy it to the account number //I could not think of a better way to represent the account number other than having it as the id itself: int lastAccountId = duplicateAccountNumberFromAccountId(); saveCreditCard(creditCard.cardID, creditCard.cardNumber, creditCard.cardExpirationDate, creditCard.cardSecurityCode, lastAccountId, creditCard.firstName, creditCard.lastName); //Get the last card ID which is for the one just created: int lastCardId = getLastCardId(); //Get a random card number from the table NewCardNumbers and store it in cardNumber of table CreditCards: //getRandomCardNumber(lastCardId); return RedirectToAction("Index"); //} //return View(vModel.account); //return View(account); }