77using Avalonia ;
88using Avalonia . Controls . ApplicationLifetimes ;
99using FluentAvalonia . UI . Data ;
10+ using Microsoft . Extensions . Logging ;
1011using SharpFM . App . Models ;
1112using SharpFM . Core ;
1213
1314namespace SharpFM . App . ViewModels ;
1415
1516public partial class MainWindowViewModel : INotifyPropertyChanged
1617{
17- public ClipDbContext _context ;
18+ private readonly ILogger _logger ;
19+
20+ public readonly ClipDbContext _context ;
1821
1922 public event PropertyChangedEventHandler ? PropertyChanged ;
2023
@@ -23,12 +26,14 @@ private void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
2326 PropertyChanged ? . Invoke ( this , new PropertyChangedEventArgs ( propertyName ) ) ;
2427 }
2528
26- public MainWindowViewModel ( )
29+ public MainWindowViewModel ( ILogger logger )
2730 {
31+ _logger = logger ;
32+
2833 _context = new ClipDbContext ( ) ;
2934 _context . Database . EnsureCreated ( ) ;
3035
31- Console . WriteLine ( $ "Database path: { _context . DbPath } .") ;
36+ _logger . LogInformation ( $ "Database path: { _context . DbPath } .") ;
3237
3338 FileMakerClips = new ObservableCollection < ClipViewModel > ( ) ;
3439
@@ -104,6 +109,7 @@ public void NewEmptyItem()
104109 }
105110 catch ( Exception e )
106111 {
112+ _logger . LogCritical ( "Error creating new Clip." , e ) ;
107113 }
108114 }
109115
@@ -129,6 +135,7 @@ public void CopyAsClass()
129135 }
130136 catch ( Exception e )
131137 {
138+ _logger . LogCritical ( "Error Copying as Class." , e ) ;
132139 }
133140 }
134141
@@ -171,6 +178,7 @@ public async Task PasteFileMakerClipData()
171178 }
172179 catch ( Exception e )
173180 {
181+ _logger . LogCritical ( "Error translating FileMaker blob to Xml." , e ) ;
174182 }
175183 }
176184
@@ -196,6 +204,7 @@ public async Task CopySelectedToClip()
196204 }
197205 catch ( Exception e )
198206 {
207+ _logger . LogCritical ( "Error returning the selected Clip FileMaker blob format." , e ) ;
199208 }
200209 }
201210
0 commit comments