using BankingBot.Contracts; using System; using System.Collections.Generic; using BankingBot.Models; using BankingBot.Enums; using BankingBot.ScriptManagement; namespace BankingBot.ActionManagers.AccountManagers { public class AccountManager : ActionManager, IAccountManager { protected IProviderAccountManager providerAccountManager; private Provider _provider; public AccountManager(IBrowserBot browserBot) : base(browserBot) { } public void Init(Provider provider) { _provider = provider; // TODO: Implement DI to get rid of this new() crap var scriptManager = new ScriptManager(BrowserBot); var providerAccountManagerType = GetTypeFromInterface(provider, typeof(IProviderAccountManager)); providerAccountManager = (IProviderAccountManager)Activator.CreateInstance(providerAccountManagerType, BrowserBot, scriptManager); } #region Behaviours public IEnumerable GetAccounts() { return providerAccountManager.GetAccounts(); } public IEnumerable GetTransactions(string accountNumber) { return providerAccountManager.GetTransactions(accountNumber); } #endregion } }