public void CloseAccount(string accountNumber) { Account account = GetAccountFromRepository(accountNumber); repository.RemoveAccount(EntityConverter.ToDalAccount(account)); var mail = new MailMessage() { Subject = "Close account", Body = $"Closing account operation. Account number: {accountNumber}", IsBodyHtml = true }; mail.To.Add(account.OwnerEmail); mailService.SendMail(mail); }
public void Withdraw(string accountNumber, decimal amount) { Account account = GetAccountFromRepository(accountNumber); account.Withdraw(amount); repository.UpdateAccount(EntityConverter.ToDalAccount(account)); var mail = new MailMessage() { Subject = "Withdraw account", Body = $"Withdraw accaunt {accountNumber}. Balance: {account.Balance}", IsBodyHtml = true }; mail.To.Add(account.OwnerEmail); mailService.SendMail(mail); }
public string OpenAccount(string email, AccountType accountType, IAccountNumberCreator creator) { Account account; string accountNumber = creator.Create(); switch (accountType) { case AccountType.Base: account = new BaseAccount(accountNumber); break; case AccountType.Gold: account = new GoldAccount(accountNumber); break; case AccountType.Platinum: account = new PlatinumAccount(accountNumber); break; default: account = new BaseAccount(accountNumber); break; } account.OwnerEmail = email; repository.AddAccount(EntityConverter.ToDalAccount(account)); var mail = new MailMessage() { Subject = "Add account", Body = $"New account was added. Account number: {accountNumber}", IsBodyHtml = true }; mail.To.Add(email); mailService.SendMail(mail); return(accountNumber); }