/// <summary> /// 1. etsitään oikea tili, jolle tilitapahtuma kirjataan /// 2. tilin saldo (Balance) laitetaan vastaaman oikeaa suoritusta +/- tapahtuma /// 3. päivitetään Account:n Balance /// 4. Tallennetaan muutokset sekä Transaction että Account tauluihin /// </summary> /// <param name="transaction"></param> /// <returns></returns> //public bool AddTransaction(Transaction transaction) //{ // bool res = false; // using (var context = new BankdbContext()) // { // try // { // context.Add(transaction); // var account = GetAccountByIban(transaction.Iban); // decimal balanceBeforeTransaction = account.Balance; // var lastTransaction = GetTransactionsOfAccount(transaction.Iban); // int result = DateTime.Compare(transaction.TimeStamp, lastTransaction.TimeStamp); // if (result>0) // { // account.Balance += transaction.Amount; // } // if (account.Balance - transaction.Amount == balanceBeforeTransaction) // { // res = true; // } // //Update Account-table // context.Account.Update(account); // context.SaveChanges(); // } // catch (Exception ex) // { // throw new NotImplementedException($"{ex.Message}\n{ex.InnerException.Message} \n"); // } // return res; // } //} /// <summary> /// 1. etsitään oikea tili, jolle tilitapahtuma kirjataan /// 2. tilin saldo (Balance) laitetaan vastaaman oikeaa suoritusta +/- tapahtuma /// 3. päivitetään Account:n Balance /// 4. Tallennetaan muutokset sekä Transaction että Account tauluihin /// </summary> /// <param name="transaction"></param> /// <returns></returns> public void AddTransaction(Transaction transaction) { using (var context = new BankdbContext()) { try { //Lisätään tapahtumatauluun rivi context.Add(transaction); //Etsitään tili, jonka tietoja päivitetään var account = GetAccountByIban(transaction.Iban); //Lasketaan tilille uusi saldoa account.Balance += transaction.Amount; //Update Account-table context.Account.Update(account); //Tallennetaan muutokset tietokantaan context.SaveChanges(); } catch (Exception ex) { throw new NotImplementedException($"{ex.Message}\n{ex.InnerException.Message} \n"); } } }
public static void UpdateCustomerData(string selectedUserId, string FirstName, string LastName) { int userId; int.TryParse(selectedUserId, out userId); if (userId > 0) { try { var context = new BankdbContext(); var UpdatedCustomer = context.Customer.Where(c => c.Id == userId).FirstOrDefault(); UpdatedCustomer.FirstName = FirstName; UpdatedCustomer.LastName = LastName; context.Customer.Update(UpdatedCustomer); context.SaveChanges(); Console.WriteLine("Customer Data Updated."); } catch (Exception e) { Console.WriteLine(e.Message); } } else { Console.WriteLine("Invalid Inputs"); } }
public static void ViewTransactionsOfOneCustomer(int customerId) { try { BankdbContext context = new BankdbContext(); var customer = context.Customer.Where(c => c.Id == customerId).SingleOrDefault(); if (customer != null) { var accounts = customer.BankAccount.ToList(); foreach (BankAccount a in accounts) { Console.WriteLine($"Transactions in account number {a.Iban}:"); List <BankAccountTransaction> transactions = context.BankAccountTransaction.ToListAsync().Result; foreach (BankAccountTransaction t in transactions) { Console.WriteLine($"Transaction date: {t.TimeStamp} Balance: {t.Amount}"); } Console.WriteLine($"Current balance: {a.Balance}:"); } Console.WriteLine(); } } catch (Exception e) { Console.WriteLine(e.Message); } }
public static void AddCustomerBankAccount(string NewIBAN, string NewName, int NewBankId, int NewCustomerId, string NewBalance) { decimal Balance; decimal.TryParse(NewBalance, out Balance); if (NewIBAN.Length >= 12 && NewName.Length >= 2 && Balance >= 0 && NewIBAN.Length <= 50 && NewName.Length <= 50) { try { var context = new BankdbContext(); var newBankAccount = new Model.BankAccount { Iban = NewIBAN, Name = NewName, BankId = NewBankId, CustomerId = NewCustomerId, Balance = Balance }; context.BankAccount.Add(newBankAccount); context.SaveChanges(); Console.WriteLine("User Bank Account added to database."); } catch (Exception e) { Console.WriteLine(e.Message); } } else { Console.WriteLine("Invalid Inputs"); } }
//Search for Customer's transactions public async void SearchForCustomerTransactions(ListView lvCustomersTransactions, string iban) { using (var db = new BankdbContext()) { var transactions = db.BankAccountTransaction .Where(bat => bat.Iban == iban) .OrderBy(bat => bat.TimeStamp) .ToList(); if (transactions.Count > 0) { lvCustomersTransactions.Items.Clear(); ListViewItem lvi; foreach (BankAccountTransaction bat in transactions) { lvi = new ListViewItem(string.Format("{0}.{1}.{2}", bat.TimeStamp.Day, bat.TimeStamp.Month, bat.TimeStamp.Year)); lvi.SubItems.Add(bat.Amount.ToString()); lvCustomersTransactions.Items.Add(lvi); } } else { lvCustomersTransactions.Items.Clear(); } } }
//List all customers and their information in a single bank public static void ViewCustomersInBank(int bankId) { BankdbContext context = new BankdbContext(); var bank = context.Bank.Where(b => b.Id == bankId).ToListAsync().Result; try { if (bank.Capacity > 0) { var customers = bank.Single().Customer; foreach (Customer c in customers) { Console.WriteLine($"Customer ID: {c.Id} Customer name: {c.FirstName} {c.LastName} Customer account number: {c.BankAccount}"); } if (customers.Count == 0) { Console.WriteLine("No customers in bank {0}.", bankId); } Console.WriteLine(); } else { Console.WriteLine("Bank with id {0} does not exist.", bankId); } } catch (Exception e) { Console.WriteLine(e.Message); } }
public static List <int> AddCustomer(string NewFirstName, string NewLastName, string Id) { int SelectedBankId; int.TryParse(Id, out SelectedBankId); List <int> UserData = new List <int>(); if (SelectedBankId > 0 && NewFirstName.Length >= 2 && NewLastName.Length >= 2 && NewFirstName.Length <= 50 && NewLastName.Length <= 50) { var context = new BankdbContext(); var newCustomer = new Model.Customer { FirstName = NewFirstName, LastName = NewLastName, BankId = SelectedBankId }; context.Customer.Add(newCustomer); context.SaveChanges(); UserData.Add(newCustomer.BankId); UserData.Add(newCustomer.Id); Console.WriteLine("User Added to database."); return(UserData); } else { Console.WriteLine("Invalid Inputs"); return(UserData); } }
/// <summary> /// Adds a new transaction for the customer account and update account balance /// </summary> public static void MakeTransaction(string iban, float amount) { try { BankdbContext context = new BankdbContext(); var account = context.BankAccount.Where(a => a.Iban == iban).SingleOrDefault(); if (account != null) { BankAccountTransaction newTransaction = new BankAccountTransaction { Iban = iban, Amount = (decimal)amount, TimeStamp = DateTime.Today }; account.Balance += (decimal)amount; context.BankAccount.Update(account); context.BankAccountTransaction.Add(newTransaction); context.SaveChanges(); Console.WriteLine($"Transaction of the amount of {amount} done for account {iban}. Current balance is: {account.Balance}"); } } catch (Exception e) { Console.WriteLine(e.Message); } }
public static List <string> GetCustomerAccounts(string SelectedCustomer) { int customerId; int.TryParse(SelectedCustomer, out customerId); List <string> IbanList = new List <string>(); if (customerId > 0) { try { var context = new BankdbContext(); var BankAccounts = context.BankAccount.Where(b => b.CustomerId == customerId) .ToListAsync().Result; int i = 0; foreach (var item in BankAccounts) { i++; Console.WriteLine("{2}. Name: {0}, Balance: {1}", item.Name, item.Balance, i); IbanList.Add(item.Iban); } } catch (Exception e) { Console.WriteLine(e.Message); } } else { Console.WriteLine("Invalid Inputs"); } return(IbanList); }
//Update Customer's Account public Tuple <int, string, string> UpdateAccount(int custId, string iban, string accountName, decimal balance) { using (var db = new BankdbContext()) { try { var bankAccount = db.BankAccount .Where(ba => (ba.CustomerId == custId) && (ba.Iban == iban)) .FirstOrDefault(); bankAccount.Name = accountName; bankAccount.Balance = balance; // >= 0 accepted db.BankAccount.Update(bankAccount); if (db.SaveChanges() > 0) { return(new Tuple <int, string, string>(1, "Bank account successfully updated!", "Success")); } else { return(new Tuple <int, string, string>(2, "Bank account not successfully updated!", "Failure")); } } catch (Exception e) { return(new Tuple <int, string, string>(3, "Error occurred in bank account updating operation!", "Failure")); } } }
/// <summary> /// Adds a new account for the customer /// </summary> public static void AddAccount(int customerId, int bankId, string iban, string accountName = null) { try { BankdbContext context = new BankdbContext(); var customer = context.Customer.Where(c => c.Id == customerId).SingleOrDefault(); var bank = context.Bank.Where(b => b.Id == bankId).SingleOrDefault(); bool dublicateIban = context.BankAccount.Where(a => a.Iban == iban).Any(); if (customer != null && bank != null && !dublicateIban) { BankAccount newAccount = new BankAccount { Iban = iban, Name = accountName, BankId = bankId, //Bank id should be derived from iban number CustomerId = customerId, Balance = 0, }; context.BankAccount.Add(newAccount); context.SaveChanges(); Console.WriteLine($"Account {iban.Trim()} added for customer {customerId}."); } } catch (Exception e) { Console.WriteLine(e.InnerException.Message); } }
public static void AddCustomerTransaction(string selectedAccount, List <string> IbanList, string amount) { int IbanSelector; int.TryParse(selectedAccount, out IbanSelector); decimal newAmount; decimal.TryParse(amount, out newAmount); string selectedIban = IbanList[IbanSelector - 1]; try { var context = new BankdbContext(); var newTransaction = new Model.BankAccountTransaction { Iban = selectedIban, Amount = newAmount, TimeStamp = DateTime.Now }; context.BankAccountTransaction.Add(newTransaction); context.SaveChanges(); } catch (Exception e) { Console.WriteLine(e.Message); } }
public static void DeleteBank(string Id) { int bankId; int.TryParse(Id, out bankId); if (bankId > 0) { try { var context = new BankdbContext(); var DeletedBank = context.Bank.Where(b => b.Id == bankId).FirstOrDefault(); context.Bank.Remove(DeletedBank); context.SaveChanges(); Console.WriteLine("Bank Deleted."); } catch (Exception e) { Console.WriteLine(e.Message); } } else { Console.WriteLine("Invalid Inputs"); } }
public static void DeleteCustomer(string selectedUserId) { int customerId; int.TryParse(selectedUserId, out customerId); if (customerId > 0) { try { var context = new BankdbContext(); var DeletedUser = context.Customer.Where(c => c.Id == customerId).FirstOrDefault(); context.Customer.Remove(DeletedUser); context.SaveChanges(); Console.WriteLine("Customer Deleted."); } catch (Exception e) { Console.WriteLine(e.Message); } } else { Console.WriteLine("Invalid Inputs"); } }
public static void UpdateBank(string Id, string NewName, string NewBic) { int bankId; int.TryParse(Id, out bankId); if (bankId > 0 && NewName.Length >= 2 && NewBic.Length >= 5 && NewName.Length <= 50 && NewBic.Length <= 10) { try { var context = new BankdbContext(); var UpdatedBank = context.Bank.Where(b => b.Id == bankId).FirstOrDefault(); UpdatedBank.Name = NewName; UpdatedBank.Bic = NewBic; context.Bank.Update(UpdatedBank); context.SaveChanges(); Console.WriteLine("Bank Updated."); } catch (Exception e) { Console.WriteLine(e.Message); } } else { Console.WriteLine("Invalid Inputs"); } }
//Update Bank public bool UpdateBank(int id, string txtBankName, string txtBiccode) { using (var db = new BankdbContext()) { var bank = db.Bank.Where(b => b.Id == id).FirstOrDefault(); bank.Name = txtBankName; bank.Bic = txtBiccode; db.Bank.Update(bank); return(db.SaveChanges() > 0 ? true : false); } }
public static void GetBanks() { var context = new BankdbContext(); var banks = context.Bank.ToListAsync().Result; foreach (var item in banks) { Console.WriteLine("Id: {0}, Name: {1}, BIC: {2}", item.Id, item.Name, item.Bic); } }
static void Main(string[] args) { Console.WriteLine("Hello World!"); var context = new BankdbContext(); /* * // Add Bank * string name = "XYZ PANKKI"; * string bic = "XYZHAAB"; * //UtilitiesBank.AddBank (name, bic); */ // /* * // Update Bank * string cName = "DKanske"; * string cBic = "DABAFIHX"; * string uName = "DANSKE2"; * string uBic = "DADBAYZ"; * UtilitiesBank.UpdateBank(cName, uName, cBic, uBic); */ // /* * // Delete Bank * string bankName = "HANDELSBANK"; * string bic = "OKOHIff"; * UtilitiesBank.DeleteBank(bankName, bic); */ /* * // New Customer * string firstName = "Niiko"; * string lastName = "Niili"; * int bankId = 3; * UtilitiesCustomer.AddCustomer(firstName, lastName, bankId); */ // New Account for a Customer "LastName" string lastName = "Niili"; string iban = "FI0250004640001555 "; string aName = "Saving Account"; int bankId = 1; int customerId = 4; decimal balance = 15; UtilitiesCustomer.AddBankAccount(lastName, iban, aName, bankId, customerId, balance); var banks = context.Bank .Where(b => b.Id == 0) .Include(b => b.Customer) .Include(b => b.BankAccount) .FirstOrDefault(); Console.ReadLine(); }
/// <summary> /// Removes all accounts that are linked to the given bank /// </summary> public static void RemoveAllAccounts(int bankId) { BankdbContext context = new BankdbContext(); List <BankAccount> accounts = context.BankAccount.Where(a => a.BankId == bankId).ToList(); foreach (BankAccount a in accounts) { AccountHandling.RemoveAccount(a.Iban); } context.SaveChanges(); }
public static int SearchCustomer(string lastName, int bankId) { // var context = new BankdbContext(); var customer = context.Customer .Where(c => c.LastName == lastName) .FirstOrDefault(); // return(customer.Id); }
public List <Bank> GetTransactionsFromBanksCustomersAccounts() { using (var _context = new BankdbContext()) { List <Bank> banks = _context.Bank .Include(b => b.Customer) .Include(b => b.Account) .Include(b => b.Account).ThenInclude(a => a.Transaction) .ToListAsync().Result; return(banks); } }
public static void GetUsers() { var context = new BankdbContext(); var customers = context.Customer .Include(c => c.Bank) .ToListAsync().Result; foreach (var item in customers) { Console.WriteLine("Id: {0}, First Name: {1}, Last Name: {2}, Bank Name: {3}", item.Id, item.FirstName, item.LastName, item.Bank.Name); } }
public static void ViewBanks() { BankdbContext context = new BankdbContext(); var banks = context.Bank.ToListAsync().Result; foreach (Models.Bank b in banks) { Console.WriteLine($"Bank ID: {b.Id} \tBank name: {b.Name.Trim()} \tBank BIC: {b.Bic}"); } Console.WriteLine(); }
//Create New Bank public Tuple <int, string, string> CreateBank(string bank, string bic) { using (var db = new BankdbContext()) { var newBank = new Bank() { Name = bank, Bic = bic }; db.Bank.Add(newBank); db.SaveChanges(); return(new Tuple <int, string, string>(newBank.Id, newBank.Name, newBank.Bic)); } }
/// <summary> /// Removes all customers /// </summary> public static void RemoveAllCustomers(int bankId) { BankdbContext context = new BankdbContext(); // Then remove all customers of that bank List <Customer> customers = CustomerHandling.GetCustomersInBank(bankId); foreach (Customer c in customers) { CustomerHandling.RemoveCustomer(c.Id); } context.SaveChanges(); }
public Account GetAccountByIban(string iban) { using (var context = new BankdbContext()) try { var account = context.Account.FirstOrDefault(a => a.Iban == iban); return(account); } catch (Exception ex) { throw new NotImplementedException($"{ex.Message}\n{ex.InnerException.Message}"); } }
public Customer GetCustomer(string firstname, string lastname) { using (var context = new BankdbContext()) try { var customer = context.Customer.FirstOrDefault(a => a.FirstName == firstname && a.LastName == lastname); return(customer); } catch (Exception ex) { throw new NotImplementedException($"{ex.Message}\n{ex.InnerException.Message}"); } }
public static void AddCustomer(string firstName, string lastName, int bankId) { var context = new BankdbContext(); var newCustomer = new Customer { FirstName = firstName, LastName = lastName, BankId = bankId }; context.Customer.Add(newCustomer); context.SaveChanges(); return; }
public void RemoveAccount(Account account) { using (var context = new BankdbContext()) try { context.Remove(account); context.SaveChanges(); } catch (Exception ex) { throw new NotImplementedException($"{ex.Message}\n{ex.InnerException.Message}"); } }
/// <summary> /// Changes customer's information in the database with new values. /// 'customerId' declares which customer is going to be changed. /// </summary> public static void ChangeCustomerInformation(int customerId, string firstName, string lastName, int bankId) { BankdbContext context = new BankdbContext(); Customer changeCustomer = context.Customer.Where(c => c.Id == customerId).FirstOrDefault(); if (changeCustomer != null) { changeCustomer.FirstName = firstName; changeCustomer.LastName = lastName; changeCustomer.BankId = bankId; context.Customer.Update(changeCustomer); context.SaveChanges(); } }