2
2
3
3
namespace Low_Code_App_Editor_1 . Controllers
4
4
{
5
- using System ;
6
- using System . Collections . Generic ;
7
- using System . IO ;
8
- using System . Linq ;
9
-
10
- using Low_Code_App_Editor_1 . LCA ;
11
- using Low_Code_App_Editor_1 . UI ;
12
-
13
- using Newtonsoft . Json ;
14
- using Newtonsoft . Json . Linq ;
15
-
16
- using Skyline . DataMiner . Automation ;
17
- using Skyline . DataMiner . Net . Apps . DataMinerObjectModel . Concatenation ;
18
- using Skyline . DataMiner . Utils . InteractiveAutomationScript ;
19
- using Skyline . DataMiner . Web . Common . v1 ;
20
-
21
- public static class EditorPanelsImportController
22
- {
23
- public static void Load ( this AppEditorPanelsImport editor , App selectedApp , IEnumerable < App > apps , IEngine engine )
24
- {
25
- editor . SelectedApp = selectedApp ;
26
- editor . Apps . Options . Clear ( ) ;
27
- editor . Apps . Options . AddRange ( apps . Select ( app => Option . Create ( app . Name , app ) ) ) ;
28
-
29
- var defaultSelected = editor . Apps . Options . FirstOrDefault ( ) ;
30
- if ( defaultSelected == null )
31
- {
32
- return ;
33
- }
34
-
35
- editor . Apps . SelectedValue = defaultSelected . Value ;
36
-
37
- editor . LoadPanels ( defaultSelected . Value , engine ) ;
38
- }
39
-
40
- public static void LoadPanels ( this AppEditorPanelsImport editor , App app , IEngine engine )
41
- {
42
- editor . Panels . Options . Clear ( ) ;
43
- editor . Panels . Options . AddRange ( app . LatestVersion . Panels . Select ( panel => Option . Create ( panel . Name , panel ) ) ) ;
44
- }
45
-
46
- public static void Import ( this AppEditorPanelsImport editor , IEngine engine )
47
- {
48
- var selectedApp = editor . Apps . SelectedValue ;
49
- var selectedPanel = editor . Panels . SelectedValue ;
50
-
51
- // Check if draft page needs to be updated too
52
- if ( editor . SelectedApp . LatestDraftVersion != null )
53
- {
54
- ImportIntoVersion ( selectedApp . LatestVersion , selectedPanel , editor . SelectedApp . LatestDraftVersion ) ;
55
- }
56
-
57
- // Import panel into latest version
58
- ImportIntoVersion ( selectedApp . LatestVersion , selectedPanel , editor . SelectedApp . LatestVersion ) ;
59
- }
60
-
61
- private static void ImportIntoVersion ( AppVersion fromAppVersion , DMAApplicationPanel fromPanel , AppVersion toAppVersion )
62
- {
63
- // Grab json configurations
64
- var selectedAppJson = JObject . Parse ( File . ReadAllText ( fromAppVersion . Path ) ) ;
65
- var selectedPanelJson = ( ( JArray ) selectedAppJson . SelectToken ( "Panels" ) ) . FirstOrDefault ( token => token [ "Name" ] . Value < string > ( ) == fromPanel . Name ) ;
66
- if ( selectedPanelJson == null )
67
- {
68
- throw new FileNotFoundException ( $ "The panel from app '{ fromAppVersion . Name } ' called '{ fromPanel . Name } ', was not found.") ;
69
- }
70
-
71
- // Copy over page
72
- File . Copy (
73
- Path . Combine ( fromAppVersion . FolderPath , "pages" , $ "{ fromPanel . ID } .dmadb.json") ,
74
- Path . Combine ( toAppVersion . FolderPath , "pages" , $ "{ fromPanel . ID } .dmadb.json") ) ;
75
-
76
- // Edit the latest config to include the newly added page
77
- var config = JObject . Parse ( File . ReadAllText ( toAppVersion . Path ) ) ;
78
- var panelsToken = config . SelectToken ( "Panels" ) ;
79
- if ( panelsToken . Type == JTokenType . Null )
80
- {
81
- panelsToken = new JArray ( ) ;
82
- }
83
-
84
- var panels = ( JArray ) panelsToken ;
85
- panels . Add ( selectedPanelJson ) ;
86
- config [ "Panels" ] = panels ;
87
-
88
- // Update our local copy of the app
89
- var localPanels = toAppVersion . Panels . ToList ( ) ;
90
- localPanels . Add ( fromPanel ) ;
91
- toAppVersion . Panels = localPanels . ToArray ( ) ;
92
-
93
- // Save the config
94
- File . WriteAllText (
95
- Path . Combine ( toAppVersion . Path ) ,
96
- config . ToString ( Formatting . None ) ) ;
97
- }
98
- }
5
+ using System ;
6
+ using System . Collections . Generic ;
7
+ using System . IO ;
8
+ using System . Linq ;
9
+
10
+ using Low_Code_App_Editor_1 . LCA ;
11
+ using Low_Code_App_Editor_1 . UI ;
12
+
13
+ using Newtonsoft . Json ;
14
+ using Newtonsoft . Json . Linq ;
15
+
16
+ using Skyline . DataMiner . Automation ;
17
+ using Skyline . DataMiner . Net . Apps . DataMinerObjectModel . Concatenation ;
18
+ using Skyline . DataMiner . Utils . InteractiveAutomationScript ;
19
+ using Skyline . DataMiner . Web . Common . v1 ;
20
+
21
+ public static class EditorPanelsImportController
22
+ {
23
+ public static void Load ( this AppEditorPanelsImport editor , App selectedApp , IEnumerable < App > apps , IEngine engine )
24
+ {
25
+ editor . SelectedApp = selectedApp ;
26
+ editor . Apps . Options . Clear ( ) ;
27
+ editor . Apps . Options . AddRange ( apps . Select ( app => Option . Create ( $ "[ { app . LatestVersion . ID } ] - { app . Name } " , app ) ) ) ;
28
+
29
+ var defaultSelected = editor . Apps . Options . FirstOrDefault ( ) ;
30
+ if ( defaultSelected == null )
31
+ {
32
+ return ;
33
+ }
34
+
35
+ editor . Apps . SelectedValue = defaultSelected . Value ;
36
+
37
+ editor . LoadPanels ( defaultSelected . Value , engine ) ;
38
+ }
39
+
40
+ public static void LoadPanels ( this AppEditorPanelsImport editor , App app , IEngine engine )
41
+ {
42
+ editor . Panels . Options . Clear ( ) ;
43
+ editor . Panels . Options . AddRange ( app . LatestVersion . Panels . Select ( panel => Option . Create ( panel . Name , panel ) ) ) ;
44
+ }
45
+
46
+ public static void Import ( this AppEditorPanelsImport editor , IEngine engine )
47
+ {
48
+ var selectedApp = editor . Apps . SelectedValue ;
49
+ var selectedPanel = editor . Panels . SelectedValue ;
50
+
51
+ // Check if draft page needs to be updated too
52
+ if ( editor . SelectedApp . LatestDraftVersion != null )
53
+ {
54
+ ImportIntoVersion ( selectedApp . LatestVersion , selectedPanel , editor . SelectedApp . LatestDraftVersion ) ;
55
+ }
56
+
57
+ // Import panel into latest version
58
+ ImportIntoVersion ( selectedApp . LatestVersion , selectedPanel , editor . SelectedApp . LatestVersion ) ;
59
+ }
60
+
61
+ private static void ImportIntoVersion ( AppVersion fromAppVersion , DMAApplicationPanel fromPanel , AppVersion toAppVersion )
62
+ {
63
+ // Grab json configurations
64
+ var selectedAppJson = JObject . Parse ( File . ReadAllText ( fromAppVersion . Path ) ) ;
65
+ var selectedPanelJson = ( ( JArray ) selectedAppJson . SelectToken ( "Panels" ) ) . FirstOrDefault ( token => token [ "Name" ] . Value < string > ( ) == fromPanel . Name ) ;
66
+ if ( selectedPanelJson == null )
67
+ {
68
+ throw new FileNotFoundException ( $ "The panel from app '{ fromAppVersion . Name } ' called '{ fromPanel . Name } ', was not found.") ;
69
+ }
70
+
71
+ // Copy over page
72
+ File . Copy (
73
+ Path . Combine ( fromAppVersion . FolderPath , "pages" , $ "{ fromPanel . ID } .dmadb.json") ,
74
+ Path . Combine ( toAppVersion . FolderPath , "pages" , $ "{ fromPanel . ID } .dmadb.json") ) ;
75
+
76
+ // Edit the latest config to include the newly added page
77
+ var config = JObject . Parse ( File . ReadAllText ( toAppVersion . Path ) ) ;
78
+ var panelsToken = config . SelectToken ( "Panels" ) ;
79
+ if ( panelsToken . Type == JTokenType . Null )
80
+ {
81
+ panelsToken = new JArray ( ) ;
82
+ }
83
+
84
+ var panels = ( JArray ) panelsToken ;
85
+ panels . Add ( selectedPanelJson ) ;
86
+ config [ "Panels" ] = panels ;
87
+
88
+ // Update our local copy of the app
89
+ var localPanels = toAppVersion . Panels . ToList ( ) ;
90
+ localPanels . Add ( fromPanel ) ;
91
+ toAppVersion . Panels = localPanels . ToArray ( ) ;
92
+
93
+ // Save the config
94
+ File . WriteAllText (
95
+ Path . Combine ( toAppVersion . Path ) ,
96
+ config . ToString ( Formatting . None ) ) ;
97
+ }
98
+ }
99
99
}
0 commit comments