/// <summary> /// Opens new account /// </summary> /// <param name="account">New account</param> public void OpenAccount(Interface.DTO.Account account) { using (BankEntities bankEntities = new BankEntities()) { Owner accOwner = bankEntities.Owner.FirstOrDefault(owner => owner.Name == account.AccountOwner.FirstName && owner.Surname == account.AccountOwner.LastName); if (accOwner == null) { accOwner = bankEntities.Owner.Add(new Owner() { Name = account.AccountOwner.FirstName, Surname = account.AccountOwner.LastName }); } Account dbAccount = bankEntities.Account.Add(new Account() { Number = account.AccountNumber, Amount = account.CurrentAmount, BonusCount = account.BonusCount, IsOpen = true, Type = AccountTypeConverter.AccountTypeToString(account.AccountType), Owner = accOwner, OwnerId = accOwner.OwnerId }); bankEntities.SaveChanges(); } }
/// <summary> /// Gets the account using it's number /// </summary> /// <param name="accountNumber">The number of the account</param> /// <returns>The account with given number</returns> public Interface.DTO.Account GetAccount(string accountNumber) { using (BankEntities bankEntities = new BankEntities()) { var dbAccount = (from account in bankEntities.Account where account.IsOpen && account.Number == accountNumber join owner in bankEntities.Owner on account.OwnerId equals owner.OwnerId select new { Number = account.Number, OwnerName = account.Owner.Name, OwnerSurname = account.Owner.Surname, AccountType = account.Type, CurrentAmount = account.Amount, BonusCount = account.BonusCount }).FirstOrDefault(); if (dbAccount != null) { return(new Interface.DTO.Account( dbAccount.Number, new Interface.DTO.Owner(dbAccount.OwnerName, dbAccount.OwnerSurname), AccountTypeConverter.StringToAccountType(dbAccount.AccountType)) { CurrentAmount = dbAccount.CurrentAmount, BonusCount = dbAccount.BonusCount }); } else { return(null); } } }
/// <summary> /// Gets all open accounts /// </summary> /// <returns>The enumeration of the account instance</returns> public IEnumerable <Interface.DTO.Account> GetAccounts() { List <Interface.DTO.Account> accounts = new List <Interface.DTO.Account>(); using (BankEntities bankEntities = new BankEntities()) { var dbAccounts = from account in bankEntities.Account where account.IsOpen select new { Number = account.Number, OwnerName = account.Owner.Name, OwnerSurname = account.Owner.Surname, AccountType = account.Type, CurrentAmount = account.Amount, BonusCount = account.BonusCount }; foreach (var account in dbAccounts) { accounts.Add(new Interface.DTO.Account(account.Number, new Interface.DTO.Owner(account.OwnerName, account.OwnerSurname), AccountTypeConverter.StringToAccountType(account.AccountType)) { CurrentAmount = account.CurrentAmount, BonusCount = account.BonusCount }); } } return(accounts); }