@@ -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