Beispiel #1
0
        public Account findAccount(string accNumber)
        {
            var db = new BankDBContext();

            try
            {
                var foundAccount = db.Accounts.FirstOrDefault(pk => pk.accountNumber.Equals(accNumber));
                System.Diagnostics.Debug.WriteLine("TEST DAL FINDACCOUNT: " + foundAccount.accountNumber);
                if (foundAccount == null)
                {
                    return(null);
                }
                else
                {
                    var account = new Account()
                    {
                        accountNumber = foundAccount.accountNumber,
                        balance       = foundAccount.balance,
                        nID           = foundAccount.NID
                    };
                    return(account);
                }
            }
            catch (Exception e)
            {
                BankCustomerDAL.errorReport(e.ToString());
                return(null);
            }
        }
Beispiel #2
0
        public Customer findCustomer(string nID)
        {
            var db = new BankDBContext();

            try
            {
                var foundCustomer = db.Customers.FirstOrDefault(pk => pk.NID.Equals(nID));

                if (foundCustomer == null)
                {
                    return(null);
                }
                else
                {
                    var customer = new Customer()
                    {
                        nID       = foundCustomer.NID,
                        firstName = foundCustomer.firstName,
                        lastName  = foundCustomer.lastName
                    };
                    return(customer);
                }
            }
            catch (Exception e)
            {
                BankCustomerDAL.errorReport(e.ToString());
                return(null);
            }
        }
Beispiel #3
0
        public bool adminRegisterCustomer(Customer inCustomer)
        {
            try
            {
                var newCustomer = new DbCustomer()
                {
                    firstName = inCustomer.firstName,
                    lastName  = inCustomer.lastName,
                    NID       = inCustomer.nID
                };

                var    db              = new BankDBContext();
                string salt            = BankCustomerDAL.generateSalt();
                string passwordAndSalt = inCustomer.password + salt;
                byte[] hashedpassword  = BankCustomerDAL.generateHash(passwordAndSalt);
                newCustomer.password = hashedpassword;
                newCustomer.salt     = salt;
                db.Customers.Add(newCustomer);
                db.SaveChanges();
                return(true);
            }
            catch (Exception e)
            {
                BankCustomerDAL.errorReport(e.ToString());
                return(false);
            }
        }
Beispiel #4
0
 public bool adminEditCustomer(Customer customer)
 {
     using (var db = new BankDBContext())
     {
         try
         {
             DbCustomer dbcustomer = db.Customers.FirstOrDefault(c => c.NID == customer.nID);
             if (dbcustomer != null)
             {
                 dbcustomer.firstName = customer.firstName;
                 dbcustomer.lastName  = customer.lastName;
                 string salt            = BankCustomerDAL.generateSalt();
                 string passwordAndSalt = customer.password + salt;
                 byte[] hashedpassword  = BankCustomerDAL.generateHash(passwordAndSalt);
                 dbcustomer.password = hashedpassword;
                 dbcustomer.salt     = salt;
                 db.SaveChanges();
                 return(true);
             }
         }
         catch (Exception e)
         {
             BankCustomerDAL.errorReport(e.ToString());
             return(false);
         }
         return(false);
     }
 }
Beispiel #5
0
        public List <Account> newAccount(string nID)
        {
            string newAccountNumber = generateBankAccountNumber();
            var    db = new BankDBContext();

            /*if (db.isAccountAlreadyPresent(newAccountNumber))
             * {
             *
             * }
             */
            var accountNew = new DbAccount()
            {
                accountNumber = "0539" + newAccountNumber,
                balance       = 0,
                NID           = nID
            };

            try
            {
                db.Accounts.Add(accountNew);
                db.SaveChanges();
                return(db.Accounts.
                       Where(a => a.NID.Equals(nID)).Select(a => new Account()
                {
                    accountNumber = a.accountNumber,
                    balance = a.balance,
                    nID = a.NID
                }).ToList());
            }
            catch (Exception e)
            {
                BankCustomerDAL.errorReport(e.ToString());
                return(null);
            }
        }
Beispiel #6
0
        public List <Customer> deleteCustomer(string nID)
        {
            var db = new BankDBContext();

            try
            {
                DbCustomer deleteCustomer = db.Customers.FirstOrDefault(pk => pk.NID.Equals(nID));
                if (deleteCustomer == null)
                {
                    return(null);
                }

                IEnumerable <DbAccount>           accounts = db.Accounts.Where(a => a.NID.Equals(nID)).ToList();
                IEnumerable <DbRegisteredPayment> registeredPayments;
                IEnumerable <DbIssuedPayment>     issuedPayments;
                foreach (DbAccount account in accounts)
                {
                    registeredPayments = db.RegisteredPayments.Where(rp => rp.customerAccountNumber.Equals(account.accountNumber)).ToList();
                    issuedPayments     = db.IssuedPayments.Where(ip => ip.customerAccountNumber.Equals(account.accountNumber)).ToList();
                    foreach (DbRegisteredPayment rp in registeredPayments)
                    {
                        db.RegisteredPayments.Remove(rp);
                        db.SaveChanges();
                    }
                    foreach (DbIssuedPayment ip in issuedPayments)
                    {
                        db.IssuedPayments.Remove(ip);
                        db.SaveChanges();
                    }
                    db.Accounts.Remove(account);
                    db.SaveChanges();
                }

                db.Customers.Remove(deleteCustomer);
                db.SaveChanges();
                return(db.Customers.Select(c => new Customer()
                {
                    nID = c.NID,
                    firstName = c.firstName,
                    lastName = c.lastName
                })
                       .ToList());
            }
            catch (Exception e)
            {
                BankCustomerDAL.errorReport(e.ToString());
                return(null);
            }
        }
Beispiel #7
0
        public bool adminEditAccount(Account account, string oldAccountNumber)
        {
            using (var db = new BankDBContext())
            {
                try
                {
                    DbAccount dbaccount = db.Accounts.FirstOrDefault(a => a.accountNumber.Equals(oldAccountNumber));
                    System.Diagnostics.Debug.WriteLine("TEST DAL ACCOUNT: " + dbaccount.accountNumber);

                    //customerAccountNumber from DbIssuedPayments
                    IEnumerable <DbIssuedPayment> issuedPayments = db.IssuedPayments
                                                                   .Where(ip => ip.customerAccountNumber.Equals(oldAccountNumber)).ToList();
                    foreach (DbIssuedPayment dbip in issuedPayments)
                    {
                        dbip.customerAccountNumber = account.accountNumber;
                        db.SaveChanges();
                    }
                    //customerAccountNumber from DbRegisteredPayments
                    IEnumerable <DbRegisteredPayment> registeredPayments = db.RegisteredPayments
                                                                           .Where(rp => rp.customerAccountNumber.Equals(oldAccountNumber)).ToList();
                    foreach (DbRegisteredPayment dbrp in registeredPayments)
                    {
                        dbrp.customerAccountNumber = account.accountNumber;
                        db.SaveChanges();
                    }

                    if (dbaccount != null)
                    {
                        dbaccount.accountNumber = account.accountNumber;
                        dbaccount.balance       = account.balance;
                        db.SaveChanges();
                        return(true);
                    }
                }
                catch (Exception e)
                {
                    BankCustomerDAL.errorReport(e.ToString());
                    return(false);
                }
                return(false);
            }
        }
Beispiel #8
0
 public List <Customer> getAllCustomers()
 {
     using (var db = new BankDBContext())
     {
         try
         {
             List <Customer> alleKunder = db.Customers.Select(k => new Customer()
             {
                 nID       = k.NID,
                 firstName = k.firstName,
                 lastName  = k.lastName
             }).ToList();
             return(alleKunder);
         }
         catch (Exception e)
         {
             BankCustomerDAL.errorReport(e.ToString());
             return(null);
         }
     }
 }
Beispiel #9
0
        public List <Account> deleteAccount(string accountNumber)
        {
            try
            {
                var db = new BankDBContext();

                DbAccount account = db.Accounts.FirstOrDefault(a => a.accountNumber.Equals(accountNumber));
                string    nid     = account.NID;
                IEnumerable <DbRegisteredPayment> registeredPayments = db.RegisteredPayments.
                                                                       Where(rp => rp.customerAccountNumber.Equals(account.accountNumber)).ToList();

                foreach (DbRegisteredPayment rp in registeredPayments)
                {
                    db.RegisteredPayments.Remove(rp);
                }
                IEnumerable <DbIssuedPayment> issuedPayments = db.IssuedPayments.
                                                               Where(ip => ip.customerAccountNumber.Equals(account.accountNumber)).ToList();
                foreach (DbIssuedPayment ip in issuedPayments)
                {
                    db.IssuedPayments.Remove(ip);
                }
                account.registeredPayments = null;
                account.issuedPayments     = null;

                db.Accounts.Remove(account);
                db.SaveChanges();
                List <Account> remainingAccounts = db.Accounts.Where(a => a.NID.Equals(nid)).Select(a => new Account()
                {
                    accountNumber = a.accountNumber,
                    balance       = a.balance
                })
                                                   .ToList();
                return(remainingAccounts);
            }
            catch (Exception e)
            {
                BankCustomerDAL.errorReport(e.ToString());
                return(null);
            }
        }
Beispiel #10
0
 public bool isAdminLoginCorrect(Admin admin)
 {
     using (var db = new BankDBContext())
     {
         try
         {
             DbAdmin adminFound = db.Admins.FirstOrDefault(c => c.ID.Equals(admin.ID));
             if (adminFound != null)
             {
                 byte[] checkPassword = BankCustomerDAL.generateHash(admin.adminPassword + adminFound.adminsalt);
                 bool   validAdmin    = adminFound.adminpassword.SequenceEqual(checkPassword);
                 return(validAdmin);
             }
             return(false);
         }
         catch (Exception e)
         {
             BankCustomerDAL.errorReport(e.ToString());
             return(false);
         }
     }
 }