77
88namespace CodeHub . Core . Services
99{
10- public abstract class AccountsService < TAccount > : IAccountsService where TAccount : class , IAccount , new ( )
10+ public class AccountsService : IAccountsService
1111 {
1212 private readonly SQLiteConnection _userDatabase ;
1313 private readonly IDefaultValueService _defaults ;
1414 private readonly string _accountsPath ;
1515
16- public IAccount ActiveAccount { get ; private set ; }
16+ public GitHubAccount ActiveAccount { get ; private set ; }
1717
18- protected AccountsService ( IDefaultValueService defaults , IAccountPreferencesService accountPreferences )
18+ public AccountsService ( IDefaultValueService defaults , IAccountPreferencesService accountPreferences )
1919 {
2020 _defaults = defaults ;
2121 _accountsPath = accountPreferences . AccountsDir ;
@@ -25,24 +25,24 @@ protected AccountsService(IDefaultValueService defaults, IAccountPreferencesServ
2525 Directory . CreateDirectory ( _accountsPath ) ;
2626
2727 _userDatabase = new SQLiteConnection ( Path . Combine ( _accountsPath , "accounts.db" ) ) ;
28- _userDatabase . CreateTable < TAccount > ( ) ;
28+ _userDatabase . CreateTable < GitHubAccount > ( ) ;
2929 }
3030
31- public IAccount GetDefault ( )
31+ public GitHubAccount GetDefault ( )
3232 {
3333 int id ;
3434 return ! _defaults . TryGet ( "DEFAULT_ACCOUNT" , out id ) ? null : Find ( id ) ;
3535 }
3636
37- public void SetDefault ( IAccount account )
37+ public void SetDefault ( GitHubAccount account )
3838 {
3939 if ( account == null )
4040 _defaults . Set ( "DEFAULT_ACCOUNT" , null ) ;
4141 else
4242 _defaults . Set ( "DEFAULT_ACCOUNT" , account . Id ) ;
4343 }
4444
45- public void SetActiveAccount ( IAccount account )
45+ public void SetActiveAccount ( GitHubAccount account )
4646 {
4747 if ( account != null )
4848 {
@@ -54,20 +54,20 @@ public void SetActiveAccount(IAccount account)
5454 ActiveAccount = account ;
5555 }
5656
57- protected string CreateAccountDirectory ( IAccount account )
57+ protected string CreateAccountDirectory ( GitHubAccount account )
5858 {
5959 return Path . Combine ( _accountsPath , account . Id . ToString ( CultureInfo . InvariantCulture ) ) ;
6060 }
6161
62- public void Insert ( IAccount account )
62+ public void Insert ( GitHubAccount account )
6363 {
6464 lock ( _userDatabase )
6565 {
6666 _userDatabase . Insert ( account ) ;
6767 }
6868 }
6969
70- public void Remove ( IAccount account )
70+ public void Remove ( GitHubAccount account )
7171 {
7272 lock ( _userDatabase )
7373 {
@@ -80,31 +80,32 @@ public void Remove(IAccount account)
8080 Directory . Delete ( accountDir , true ) ;
8181 }
8282
83- public void Update ( IAccount account )
83+ public void Update ( GitHubAccount account )
8484 {
8585 lock ( _userDatabase )
8686 {
8787 _userDatabase . Update ( account ) ;
8888 }
8989 }
9090
91- public bool Exists ( IAccount account )
91+ public bool Exists ( GitHubAccount account )
9292 {
9393 return Find ( account . Id ) != null ;
9494 }
9595
96- public IAccount Find ( int id )
96+ public GitHubAccount Find ( int id )
9797 {
9898 lock ( _userDatabase )
9999 {
100- var query = _userDatabase . Find < TAccount > ( x => x . Id == id ) ;
100+ var query = _userDatabase . Find < GitHubAccount > ( x => x . Id == id ) ;
101101 return query ;
102102 }
103103 }
104104
105- public IEnumerator < IAccount > GetEnumerator ( )
105+ public IEnumerator < GitHubAccount > GetEnumerator ( )
106106 {
107- return _userDatabase . Table < TAccount > ( ) . GetEnumerator ( ) ;
107+ foreach ( var account in _userDatabase . Table < GitHubAccount > ( ) )
108+ yield return account ;
108109 }
109110
110111 IEnumerator IEnumerable . GetEnumerator ( )
0 commit comments