@@ -8,93 +8,65 @@ namespace TodoSQLite.Data;
88
99public class PowerSyncData
1010{
11- public PowerSyncDatabase _db ;
12- private ILogger _logger ;
13- private bool _isConnected ;
14-
11+ public PowerSyncDatabase Db ;
12+ private string UserId { get ; }
1513
1614 public PowerSyncData ( )
1715 {
1816 Console . WriteLine ( "Creating PowerSyncData instance" ) ;
19- }
20-
21- public string UserId { get ; set ; } = "" ;
22- public bool IsConnected
23- {
24- get => _isConnected ;
25- private set
26- {
27- if ( _isConnected != value )
28- {
29- _isConnected = value ;
30- ConnectionStatusChanged ? . Invoke ( this , EventArgs . Empty ) ;
31- }
32- }
33- }
34-
35- public event EventHandler ConnectionStatusChanged ;
36-
37- public async Task Init ( )
38- {
39- if ( _db != null ) return ;
40-
4117 ILoggerFactory loggerFactory = LoggerFactory . Create ( builder =>
4218 {
4319 builder . AddConsole ( ) ;
4420 builder . SetMinimumLevel ( LogLevel . Trace ) ;
4521 } ) ;
46- _logger = loggerFactory . CreateLogger ( "PowerSyncLogger" ) ;
22+ var logger = loggerFactory . CreateLogger ( "PowerSyncLogger" ) ;
4723
4824 var dbPath = Path . Combine ( FileSystem . AppDataDirectory , "examplsee.db" ) ;
4925 var factory = new MAUISQLiteDBOpenFactory ( new MDSQLiteOpenFactoryOptions ( )
5026 {
5127 DbFilename = dbPath
5228 } ) ;
53- _db = new PowerSyncDatabase ( new PowerSyncDatabaseOptions ( )
29+ Db = new PowerSyncDatabase ( new PowerSyncDatabaseOptions ( )
5430 {
5531 Database = factory ,
5632 Schema = AppSchema . PowerSyncSchema ,
57- Logger = _logger
33+ Logger = logger
5834 } ) ;
59- await _db . Init ( ) ;
6035
6136 var nodeConnector = new NodeConnector ( ) ;
6237 UserId = nodeConnector . UserId ;
6338
64- _db . Connect ( nodeConnector ) ;
39+ Db . Connect ( nodeConnector ) ;
6540 }
66-
41+
6742 public async Task SaveListAsync ( TodoList list )
6843 {
69- await Init ( ) ;
7044 if ( list . ID != "" )
7145 {
72- await _db . Execute (
46+ await Db . Execute (
7347 "UPDATE lists SET name = ?, owner_id = ? WHERE id = ?" ,
7448 [ list . Name , UserId , list . ID ] ) ;
7549 }
7650 else
7751 {
78- await _db . Execute (
52+ await Db . Execute (
7953 "INSERT INTO lists (id, created_at, name, owner_id, created_at) VALUES (uuid(), datetime(), ?, ?, ?)" ,
8054 [ list . Name , UserId , DateTime . UtcNow . ToString ( "o" ) ] ) ;
8155 }
8256 }
8357
8458 public async Task DeleteListAsync ( TodoList list )
8559 {
86- await Init ( ) ;
8760 var listId = list . ID ;
8861 // First delete all todo items in this list
89- await _db . Execute ( "DELETE FROM todos WHERE list_id = ?" , [ listId ] ) ;
90- await _db . Execute ( "DELETE FROM lists WHERE id = ?" , [ listId ] ) ;
62+ await Db . Execute ( "DELETE FROM todos WHERE list_id = ?" , [ listId ] ) ;
63+ await Db . Execute ( "DELETE FROM lists WHERE id = ?" , [ listId ] ) ;
9164 }
9265 public async Task SaveItemAsync ( TodoItem item )
9366 {
94- await Init ( ) ;
9567 if ( item . ID != "" )
9668 {
97- await _db . Execute (
69+ await Db . Execute (
9870 @"UPDATE todos
9971 SET description = ?, completed = ?, completed_at = ?, completed_by = ?
10072 WHERE id = ?" ,
@@ -108,7 +80,7 @@ await _db.Execute(
10880 }
10981 else
11082 {
111- await _db . Execute (
83+ await Db . Execute (
11284 @"INSERT INTO todos
11385 (id, list_id, description, created_at, completed, created_by, created_at)
11486 VALUES (uuid(), ?, ?, ?, ?, ?, datetime())" ,
@@ -124,7 +96,6 @@ await _db.Execute(
12496
12597 public async Task DeleteItemAsync ( TodoItem item )
12698 {
127- await Init ( ) ;
128- await _db . Execute ( "DELETE FROM todos WHERE id = ?" , [ item . ID ] ) ;
99+ await Db . Execute ( "DELETE FROM todos WHERE id = ?" , [ item . ID ] ) ;
129100 }
130101}
0 commit comments