/// <summary>
        /// Adds instance of AccountDTO to storage.
        /// </summary>
        /// <param name="account">
        /// AccountDTO instance.
        /// </param>
        public void Create(AccountDTO account)
        {
            if (account == null)
            {
                throw new ArgumentNullException(nameof(account), message: "Cannot create account with null");
            }

            using (var db = new AccountContext())
            {
                db.Accounts.Add(account);
                db.SaveChanges();
            }
        }
 /// <summary>
 /// Removes AccountDTO instance from storage.
 /// </summary>
 /// <param name="id">
 /// Used to determine account to remove.
 /// </param>
 public void Delete(int id)
 {
     using (var db = new AccountContext())
     {
         var account = new AccountDTO()
         {
             AccountDTOId = id
         };
         db.Accounts.Attach(account);
         db.Accounts.Remove(account);
         db.SaveChanges();
     }
 }
        /// <summary>
        /// Replaces AccountDTO instance in storage with given account with the same account number.
        /// </summary>
        /// <param name="account">
        /// Account to replace with.
        /// </param>
        public void Update(AccountDTO account)
        {
            if (account == null)
            {
                throw new ArgumentNullException(nameof(account), message: "Cannot update null");
            }

            using (var db = new AccountContext())
            {
                var accountToUpdate = db.Accounts.Where(acc => acc.AccountDTOId == account.AccountDTOId).FirstOrDefault();
                if (accountToUpdate != null)
                {
                    accountToUpdate.AccountOwner = account.AccountOwner;
                    accountToUpdate.AccountType  = account.AccountType;
                    accountToUpdate.AccountSum   = account.AccountSum;
                    accountToUpdate.BonusScore   = account.BonusScore;
                }

                db.SaveChanges();
            }
        }