Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
SynchronizeFolder.cs
1using System.Threading.Tasks;
5
7{
11 internal class SynchronizeFolder : ICommand
12 {
13 private readonly FolderNode node;
14
19 public SynchronizeFolder(FolderNode Node)
20 {
21 this.node = Node;
22 this.SynchronizationOptions = Node.SynchronizationOptions;
23 this.FileFilter = Node.FileFilter;
24 }
25
29 [Page(2, "File System", 100)]
30 [Header(7, "Synchronization Mode:")]
31 [ToolTip(8, "If, and how, files in the folder (or subfolders) will be synchronized.")]
32 [Option(SynchronizationOptions.NoSynchronization, 9, "Do not synchronize files.")]
33 [Option(SynchronizationOptions.TopLevelOnly, 10, "Synchronize top-level files only.")]
34 [Option(SynchronizationOptions.IncludeSubfolders, 11, "Synchronize files in folder and subfolders.")]
35 [Text(TextPosition.AfterField, 16, "You can add default script templates to be used for files found, by adding string-valued meta-data tags to the node, where the meta-data key names correspond to file extensions.")]
37
41 [Page(2, "File System", 100)]
42 [Header(5, "File Filter:")]
43 [ToolTip(6, "You can limit the files to be monitored using a file filter. If no filter is provided, all files within the scope will be monitored.")]
44 public string FileFilter { get; set; }
45
49 public string CommandID => nameof(SynchronizeFolder);
50
54 public CommandType Type => CommandType.Query;
55
59 public string SortCategory => "FileSystem";
60
64 public string SortKey => "Synchronize";
65
71 public Task<bool> CanExecuteAsync(RequestOrigin Caller)
72 {
73 return this.node.CanEditAsync(Caller);
74 }
75
80 public ICommand Copy()
81 {
82 return new SynchronizeFolder(this.node);
83 }
84
88 public Task ExecuteCommandAsync()
89 {
90 return Task.CompletedTask;
91 }
92
97 public Task<string> GetNameAsync(Language Language)
98 {
99 return Language.GetStringAsync(typeof(FolderNode), 17, "Synchronize folder...");
100 }
101
106 public Task<string> GetSuccessStringAsync(Language Language)
107 {
108 return Task.FromResult(string.Empty);
109 }
110
115 public Task<string> GetConfirmationStringAsync(Language Language)
116 {
117 return Task.FromResult(string.Empty);
118 }
119
124 public Task<string> GetFailureStringAsync(Language Language)
125 {
126 return Language.GetStringAsync(typeof(FolderNode), 18, "Unable to start synchronization.");
127 }
128
134 public Task StartQueryExecutionAsync(Query Query, Language Language)
135 {
136 SynchronizationStatistics Statistics = new SynchronizationStatistics(this.node, Query);
137 return this.node.SynchFolder(this.SynchronizationOptions, this.FileFilter, Statistics);
138 }
139 }
140}
Contains information about a language.
Definition: Language.cs:17
Task< string > GetStringAsync(Type Type, int Id, string Default)
Gets the string value of a string ID. If no such string exists, a string is created with the default ...
Definition: Language.cs:209
Class handling the reception of data from a query.
Definition: Query.cs:12
Tokens available in request.
Definition: RequestOrigin.cs:9
Interface for commands.
Definition: ICommand.cs:32
TextPosition
Where the instructions are to be place.
Definition: TextAttribute.cs:9
SynchronizationOptions
How a folder will synchronize nodes with contents of folders.
Definition: FolderNode.cs:23
CommandType
Command type.
Definition: ICommand.cs:11