1 using System;
 2 using System.Windows;
 3 
 4 namespace FileExplorer
 5 {
 6     public class OpenAndExpandAction : ClickAction
 7     {
 8         public OpenAndExpandAction(Node* node_) : base()node(node_)
 9         {
10         }
11         [nodiscard]
12         public override Result<bool> Execute()
13         {
14             MainWindow* mainWindow = node->GetMainWindow();
15             if (mainWindow != null)
16             {
17                 auto result = mainWindow->HideContextMenu();
18                 if (result.Error()) return result;
19                 result = node->OpenAndExpand();
20                 if (result.Error()) return result;
21             }
22             return Result<bool>(true);
23         }
24         private Node* node;
25     }
26 
27     public class OpenAction : ClickAction
28     {
29         public nothrow OpenAction(Node* node_) : base()node(node_)
30         {
31         }
32         [nodiscard]
33         public override Result<bool> Execute()
34         {
35             MainWindow* mainWindow = node->GetMainWindow();
36             if (mainWindow != null)
37             {
38                 auto result = mainWindow->HideContextMenu();
39                 if (result.Error()) return result;
40                 result = node->Open();
41                 if (result.Error()) return result;
42             }
43             return Result<bool>(true);
44         }
45         private Node* node;
46     }
47 }