public MainWindowViewModel(ILogger logger, IVTubeMonDbConnection vTubeMonDbConnection, DataCache dataCache, IVTubeMonServerConnection vTubeMonServerConnection, DatabaseWorkspace databaseWorkspace) { LogCollection = new ObservableCollection <string>(); _logger = logger; _logger.OnLog += Logger_OnLog; _vTubeMonDbConnection = vTubeMonDbConnection; _vTubeMonDbConnection.OpenConnection(); _dataCache = dataCache; _dataCache.RefreshAll(); _dataCache.VtuberCache.OnDataRefreshed += VtuberCache_OnDataRefreshed; AgencyCollection = new ObservableCollection <Agency>(_dataCache.AgencyCache.CachedList); VTuberCollection = new ObservableCollection <VTuberViewModel>(); UpdateVtuberCollection(); _vTubeMonServerConnection = vTubeMonServerConnection; vTubeMonServerConnection.OnConnect += VTubeMonServerConnection_OnConnect; vTubeMonServerConnection.OnDisconnect += VTubeMonServerConnection_OnDisconnect; _vTubeMonServerConnection.CreateNewClient(); _databaseWorkspace = databaseWorkspace; }