@@ -12,27 +12,33 @@ public class TerminalFileModel
12
12
[ JsonProperty ( "version" ) ]
13
13
public int Version { get ; set ; }
14
14
15
- [ JsonProperty ( "defaultTerminalId " ) ]
16
- public int DefaultTerminalId { get ; set ; }
15
+ [ JsonProperty ( "defaultTerminalPath " ) ]
16
+ public string DefaultTerminalPath { get ; set ; }
17
17
18
18
[ JsonProperty ( "terminals" ) ]
19
19
public List < TerminalModel > Terminals { get ; set ; } = new List < TerminalModel > ( ) ;
20
20
21
21
public TerminalModel GetDefaultTerminal ( )
22
22
{
23
- if ( DefaultTerminalId != 0 )
23
+ TerminalModel terminal = Terminals . FirstOrDefault ( x => x . Path . Equals ( DefaultTerminalPath , StringComparison . OrdinalIgnoreCase ) ) ;
24
+ if ( terminal != null )
24
25
{
25
- return Terminals . Single ( x => x . Id == DefaultTerminalId ) ;
26
+ return terminal ;
26
27
}
28
+ else
29
+ {
30
+ ResetToDefaultTerminal ( ) ;
31
+ }
32
+
27
33
return Terminals . First ( ) ;
28
34
}
29
35
30
36
public void ResetToDefaultTerminal ( )
31
37
{
32
- DefaultTerminalId = 1 ;
38
+ DefaultTerminalPath = "cmd.exe" ;
33
39
}
34
40
35
- public async Task < bool > AddTerminal ( TerminalModel terminal , string packageName )
41
+ public async Task < bool > AddOrRemoveTerminal ( TerminalModel terminal , string packageName )
36
42
{
37
43
bool isChanged = false ;
38
44
bool isInstalled = await PackageHelper . IsAppInstalledAsync ( packageName ) ;
@@ -44,8 +50,12 @@ public async Task<bool> AddTerminal(TerminalModel terminal, string packageName)
44
50
}
45
51
else if ( ! isInstalled )
46
52
{
53
+ if ( DefaultTerminalPath . Equals ( terminal . Path , StringComparison . OrdinalIgnoreCase ) )
54
+ {
55
+ ResetToDefaultTerminal ( ) ;
56
+ }
47
57
Terminals . Remove ( Terminals . FirstOrDefault ( x => x . Path . Equals ( terminal . Path , StringComparison . OrdinalIgnoreCase ) ) ) ;
48
- ResetToDefaultTerminal ( ) ;
58
+
49
59
isChanged = true ;
50
60
}
51
61
return isChanged ;
0 commit comments