@@ -12,27 +12,33 @@ public class TerminalFileModel
1212 [ JsonProperty ( "version" ) ]
1313 public int Version { get ; set ; }
1414
15- [ JsonProperty ( "defaultTerminalId " ) ]
16- public int DefaultTerminalId { get ; set ; }
15+ [ JsonProperty ( "defaultTerminalPath " ) ]
16+ public string DefaultTerminalPath { get ; set ; }
1717
1818 [ JsonProperty ( "terminals" ) ]
1919 public List < TerminalModel > Terminals { get ; set ; } = new List < TerminalModel > ( ) ;
2020
2121 public TerminalModel GetDefaultTerminal ( )
2222 {
23- if ( DefaultTerminalId != 0 )
23+ TerminalModel terminal = Terminals . FirstOrDefault ( x => x . Path . Equals ( DefaultTerminalPath , StringComparison . OrdinalIgnoreCase ) ) ;
24+ if ( terminal != null )
2425 {
25- return Terminals . Single ( x => x . Id == DefaultTerminalId ) ;
26+ return terminal ;
2627 }
28+ else
29+ {
30+ ResetToDefaultTerminal ( ) ;
31+ }
32+
2733 return Terminals . First ( ) ;
2834 }
2935
3036 public void ResetToDefaultTerminal ( )
3137 {
32- DefaultTerminalId = 1 ;
38+ DefaultTerminalPath = "cmd.exe" ;
3339 }
3440
35- public async Task < bool > AddTerminal ( TerminalModel terminal , string packageName )
41+ public async Task < bool > AddOrRemoveTerminal ( TerminalModel terminal , string packageName )
3642 {
3743 bool isChanged = false ;
3844 bool isInstalled = await PackageHelper . IsAppInstalledAsync ( packageName ) ;
@@ -44,8 +50,12 @@ public async Task<bool> AddTerminal(TerminalModel terminal, string packageName)
4450 }
4551 else if ( ! isInstalled )
4652 {
53+ if ( DefaultTerminalPath . Equals ( terminal . Path , StringComparison . OrdinalIgnoreCase ) )
54+ {
55+ ResetToDefaultTerminal ( ) ;
56+ }
4757 Terminals . Remove ( Terminals . FirstOrDefault ( x => x . Path . Equals ( terminal . Path , StringComparison . OrdinalIgnoreCase ) ) ) ;
48- ResetToDefaultTerminal ( ) ;
58+
4959 isChanged = true ;
5060 }
5161 return isChanged ;
0 commit comments