@@ -7,6 +7,8 @@ import { map, debounceTime } from 'rxjs/operators';
77import { PowershellCommands } from '../../../services/powershell/powershell-commands' ;
88import { GlobalUtils } from '../../../services/global-utils' ;
99import { AppLogger } from '../../../services/AppLogger' ;
10+ import { AppDatabase } from '../../../services/AppDatabase' ;
11+ import { DbEventLog } from '../../../types/database/DbEventLog' ;
1012//#endregion imports
1113
1214@Component ( {
@@ -32,6 +34,7 @@ export class LogSelectionComponent implements OnInit, OnDestroy {
3234
3335 public loading : boolean = true ;
3436 private _logers : EventLog [ ] = [ ] ;
37+ private _dbLoggers : DbEventLog [ ] = [ ] ;
3538 public logers : EventLog [ ] = [ ] ;
3639 private _searchValue : string = '' ;
3740 public remoteComputer : string = '' ;
@@ -40,6 +43,7 @@ export class LogSelectionComponent implements OnInit, OnDestroy {
4043
4144 //#region Component Methods
4245 ngOnInit ( ) : void {
46+ AppDatabase . getInstance ( ) . getAllLoggs ( ) . then ( items => this . _dbLoggers = items ) ;
4347 this . _search ( ) ;
4448 this . _setupSearch ( ) ;
4549 }
@@ -76,7 +80,9 @@ export class LogSelectionComponent implements OnInit, OnDestroy {
7680 this . loading = true ;
7781 PowershellCommands . getEventLogs ( this . remoteComputer )
7882 . then ( ( evs : EventLog [ ] ) => {
79- this . _logers = evs ;
83+ this . _logers = evs
84+ . map ( logger => this . _dbLoggers . find ( dbLogger => dbLogger . IsSame ( logger ) ) || logger )
85+ . sort ( ( it1 , it2 ) => it1 . isFavorite == it2 . isFavorite ? 0 : ( it1 . isFavorite ? - 1 : 1 ) ) ;
8086 this . loading = false ;
8187 this . _applyFiltering ( ) ;
8288 } )
@@ -145,6 +151,25 @@ export class LogSelectionComponent implements OnInit, OnDestroy {
145151 } ) ;
146152 } ) ;
147153 }
148- //#endregion UiCallbacks
154+
155+ public UiOnFavoriteClicked ( item : EventLog ) : void {
156+ const dbItem = new DbEventLog ( item ) ;
157+ dbItem . isFavorite = ! item . isFavorite ;
158+
159+ AppDatabase
160+ . getInstance ( )
161+ . upsertItem ( dbItem )
162+ . then ( ( res :boolean ) => {
163+ if ( ! res ) return ;
164+
165+ item . isFavorite = ! item . isFavorite ;
166+ if ( this . _dbLoggers . find ( dbLogger => dbLogger . IsSame ( dbItem ) ) == null ) {
167+ this . _dbLoggers . push ( dbItem ) ;
168+ }
169+ else {
170+ this . _dbLoggers = this . _dbLoggers . map ( logger => logger . IsSame ( dbItem ) ? dbItem : logger ) ;
171+ }
172+ } ) ;
173+ }
149174
150175}
0 commit comments