public object CreateCust(Customer model) { try { int amount = model.OpeningBalance; Transaction t = new Transaction() { DateAndTime = DateTime.Now, Remarks = "Opened an account", Credit = model.OpeningBalance, AccountNo = model.AccountNo, Balance = model.OpeningBalance }; db.Transactions.Add(t); model.OpeningBalance = 0; db.Customers.Add(model); db.SaveChanges(); foreach (var i in db.Customers) { if (model.Username == i.Username) { i.OpeningBalance = amount; } } db.SaveChanges(); return(new Response { Status = "Success", Message = "Data Successfully inserted" }); } catch (Exception ex) { return(new Response { Status = "Error", Message = ex.StackTrace }); } }
static void Main(string[] args) { bool passedUserName = false; bool passedPassword = false; int loggedUserId = 0; //making a new account or logging in Console.WriteLine("Welcome to Emanuel's bank! \nDo you have an account already? Yes/No"); string newUserOrNah = Console.ReadLine(); if (newUserOrNah.ToLower() != "yes" && newUserOrNah.ToLower() != "no") { while (newUserOrNah.ToLower() != "yes" && newUserOrNah.ToLower() != "no") { Console.WriteLine("That is not an option, are you a new user?"); newUserOrNah = Console.ReadLine(); } } if (newUserOrNah.ToLower() == "yes") { BankProjectEntities accounts = new BankProjectEntities(); int accountQuantity = accounts.Accounts.Count(); Console.WriteLine("Please enter your name"); string enteredName = Console.ReadLine(); if (accountQuantity != 0) { using (var dbContext = new BankProjectEntities()) { //opening the needed files User user = new User(); Console.WriteLine("Please enter your password"); string enteredPassword = Console.ReadLine(); var userNameAndPassword = dbContext.Users.FirstOrDefault(x => x.Password == enteredPassword && x.Username == enteredName); while (userNameAndPassword == null) { Console.WriteLine("Sorry, username or password is incorrect \nPlease Try again"); enteredName = Console.ReadLine(); Console.WriteLine("Please enter your password"); enteredPassword = Console.ReadLine(); userNameAndPassword = dbContext.Users.FirstOrDefault(x => x.Password == enteredPassword && x.Username == enteredName); } passedUserName = true; passedPassword = true; loggedUserId = userNameAndPassword.UserId; } } else if (accountQuantity == 0) { Console.WriteLine("There are no registered user! \n To sign up please enter your name"); string name = Console.ReadLine(); //making the password Console.WriteLine("Please Enter a password..."); string enteredPassword = Console.ReadLine(); using (var dbContext = new BankProjectEntities()) { var user = new User { Username = name, Password = enteredPassword }; //Setting the balance Account account = new Account(); Console.WriteLine("How much money would you like to open your account with?"); decimal enteredAccountBalance = Convert.ToDecimal(Console.ReadLine()); var account2 = new Data.Account { Balance = enteredAccountBalance, CreatedDate = DateTime.Now, ModifiedDate = DateTime.Now, User = user }; dbContext.Accounts.Add(account2); dbContext.SaveChanges(); } Console.WriteLine("Thank you for logging in today"); } } else if (newUserOrNah == "No" || newUserOrNah == "no") { Console.WriteLine("Please enter your name"); string name = Console.ReadLine(); //making the password Console.WriteLine("Please Enter a password..."); string enteredPassword = Console.ReadLine(); using (var dbContext = new BankProjectEntities()) { var user = new User { Username = name, Password = enteredPassword }; //Setting the balance Account account = new Account(); Console.WriteLine("How much money would you like to open your account with?"); string enteredAccountBalance = Console.ReadLine(); decimal enteredAccounrBalanceAsDecimal; if (decimal.TryParse(enteredAccountBalance, out enteredAccounrBalanceAsDecimal)) { enteredAccounrBalanceAsDecimal = Convert.ToDecimal(enteredAccountBalance); var account2 = new Data.Account { Balance = enteredAccounrBalanceAsDecimal, CreatedDate = DateTime.Now, ModifiedDate = DateTime.Now, User = user }; dbContext.Accounts.Add(account2); dbContext.SaveChanges(); } //logging in Console.WriteLine("Thank you for signing up for Emanuel's Bank! \nTo login please enter your name"); string enteredName1 = Console.ReadLine(); using (var dbContext2 = new BankProjectEntities()) { //opening the needed files User user2 = new User(); Console.WriteLine("Please enter your password"); string enteredPassword2 = Console.ReadLine(); var userNameAndPassword = dbContext.Users.FirstOrDefault(x => x.Password == enteredPassword2 && x.Username == enteredName1); while (userNameAndPassword == null) { Console.WriteLine("Sorry, username or password is incorrect \nPlease Try again"); enteredName1 = Console.ReadLine(); Console.WriteLine("Please enter your password"); enteredPassword = Console.ReadLine(); userNameAndPassword = dbContext.Users.FirstOrDefault(x => x.Password == enteredPassword2 && x.Username == enteredName1); } passedUserName = true; passedPassword = true; loggedUserId = userNameAndPassword.UserId; } } } if (passedUserName == true && passedPassword == true) { //What does the user want to do? Console.WriteLine("To check account balance, press 1 \nTo withdraw money press 2 \nTo deposit money press 3 \nTo transfer money to another account press 4"); string whatUserWants = Console.ReadLine(); while (whatUserWants == "1" || whatUserWants == "2" || whatUserWants == "3" || whatUserWants == "4" || whatUserWants == "7") { if (whatUserWants == "1") { using (var dbContext = new BankProjectEntities()) { var account2 = dbContext.Accounts.FirstOrDefault(x => x.AccountId == loggedUserId); if (account2 != null) { decimal balance = account2.Balance; Console.WriteLine("Your balance is $" + balance); } } } else if (whatUserWants == "2") { Account account = new Account(); Console.WriteLine("How much money would you like to withdraw from your account?"); string withDrawAmount = Console.ReadLine(); decimal withdrawAmountAsDecimal; if (decimal.TryParse(withDrawAmount, out withdrawAmountAsDecimal)) { using (var dbContext = new BankProjectEntities()) { int accountId = loggedUserId; var account2 = dbContext.Accounts.FirstOrDefault(x => x.AccountId == accountId); if (account2 != null) { withdrawAmountAsDecimal = Convert.ToDecimal(withDrawAmount); decimal newBalance = account2.Balance - withdrawAmountAsDecimal; Console.WriteLine("Thank you, your new balance is $" + newBalance); account2.Balance = newBalance; } dbContext.SaveChanges(); } } else { Console.WriteLine("That is not a valid amount \nPlease try again"); withDrawAmount = Console.ReadLine(); } } else if (whatUserWants == "3") { Account account = new Account(); Console.WriteLine("How much money would you like to deposit in your account?"); string depositAmount = Console.ReadLine(); decimal depositAmountAsDecimal; if (decimal.TryParse(depositAmount, out depositAmountAsDecimal)) { using (var dbContext = new BankProjectEntities()) { var account2 = dbContext.Accounts.FirstOrDefault(x => x.AccountId == loggedUserId); if (account2 != null) { depositAmountAsDecimal = Convert.ToDecimal(depositAmount); decimal newBalance = account2.Balance + depositAmountAsDecimal; Console.WriteLine("Thank you, your new balance is $" + newBalance); account2.Balance = newBalance; } dbContext.SaveChanges(); } } else { Console.WriteLine("That is not a valid amount"); depositAmount = Console.ReadLine(); } } else if (whatUserWants == "4") { Console.WriteLine("Please enter the username to which you'd like to send money to"); string accountName = Console.ReadLine(); using (var dbContext = new BankProjectEntities()) { var toUser = dbContext.Users.FirstOrDefault(x => x.Username == accountName); while (toUser == null) { Console.WriteLine("That is not a registered user, sorry \nPlease try again"); accountName = Console.ReadLine(); toUser = dbContext.Users.FirstOrDefault(x => x.Username == accountName); } var toAccount = dbContext.Accounts.FirstOrDefault(x => x.AccountId == toUser.UserId); var fromUser = dbContext.Users.FirstOrDefault(x => x.UserId == loggedUserId); var fromAccount = dbContext.Accounts.FirstOrDefault(x => x.AccountId == loggedUserId); Console.WriteLine("How much money would you like to send to " + accountName + "?"); string amountTransfered = Console.ReadLine(); decimal amountTransferedAsDecimal; if (decimal.TryParse(amountTransfered, out amountTransferedAsDecimal)) { amountTransferedAsDecimal = Convert.ToDecimal(amountTransfered); decimal whatWillRemain = toAccount.Balance - amountTransferedAsDecimal; if (amountTransferedAsDecimal > 0 && whatWillRemain > 0) { fromAccount.Balance = fromAccount.Balance - amountTransferedAsDecimal; toAccount.Balance = toAccount.Balance + amountTransferedAsDecimal; } else { while (amountTransferedAsDecimal < 0 || whatWillRemain < 0) { Console.WriteLine("You either do not have sufficent funds or you have entered a number less than $1 \nPlease try again"); amountTransferedAsDecimal = Convert.ToDecimal(Console.ReadLine()); } fromAccount.Balance = fromAccount.Balance - amountTransferedAsDecimal; toAccount.Balance = toAccount.Balance + amountTransferedAsDecimal; } var transaction = new Data.Transaction { Transaction_Date = DateTime.Now, Transaction_Amount = amountTransferedAsDecimal, }; dbContext.Transactions.Add(transaction); dbContext.SaveChanges(); Console.WriteLine("Thank you, your new balance is $" + fromAccount.Balance); } else { while (decimal.TryParse(amountTransfered, out amountTransferedAsDecimal) != true) { Console.WriteLine("Sorry that is not a valid amount \nPlease try again"); amountTransfered = Console.ReadLine(); } amountTransferedAsDecimal = Convert.ToDecimal(amountTransfered); decimal whatWillRemain = toAccount.Balance - amountTransferedAsDecimal; if (amountTransferedAsDecimal > 0 && whatWillRemain > 0) { fromAccount.Balance = fromAccount.Balance - amountTransferedAsDecimal; toAccount.Balance = toAccount.Balance + amountTransferedAsDecimal; } else { while (amountTransferedAsDecimal < 0 || whatWillRemain < 0) { Console.WriteLine("You either do not have sufficent funds or you have entered a number less than $1 \nPlease try again"); amountTransferedAsDecimal = Convert.ToDecimal(Console.ReadLine()); } fromAccount.Balance = fromAccount.Balance - amountTransferedAsDecimal; toAccount.Balance = toAccount.Balance + amountTransferedAsDecimal; } var transaction = new Data.Transaction { Transaction_Date = DateTime.Now, Transaction_Amount = amountTransferedAsDecimal, }; dbContext.Transactions.Add(transaction); dbContext.SaveChanges(); Console.WriteLine("Thank you, your new balance is $" + fromAccount.Balance); } } } else if (whatUserWants == "7") { Environment.Exit(1); } Console.WriteLine("To exit press 7 \nTo check account balance, press 1 \nTo withdraw money press 2 \nTo deposit money press 3 \nTo transfer money to another account press 4"); whatUserWants = Console.ReadLine(); } } }
public object Createtransaction(TransactionInter t) { int flag = 0; int amount = 0; try { Transaction t1 = new Transaction(); foreach (var i in db.Customers) { if (i.Username == t.Username && i.Pin == t.PIN) { amount = i.OpeningBalance; t1.AccountNo = i.AccountNo; flag = 1; break; } } if (t.Amount > amount && t.Type == "Debt" && flag == 1) { return(new Response { Status = "Transaction Failed", Message = "Data not saved" }); } else if (flag == 1) { if (t.Type == "Debt") { t1.Remarks = "Self"; t1.Debt = t.Amount; t1.Credit = 0; } else { t1.Remarks = "Self"; t1.Credit = t.Amount; t1.Debt = 0; } t1.DateAndTime = DateTime.Now; t1.Balance = 10; db.Transactions.Add(t1); db.SaveChanges(); return(new Response { Status = "Success", Message = "Data Successfully" }); } else { return(new Response { Status = "Transaction Failed", Message = "Data not saved" }); } } catch (Exception ex) { return(new Response { Status = "Error", Message = ex.Message }); } }