Commit f13d7fa30950712036694972fb158231b8025bf7
1 parent
a6a553c9
apró szépészeti javítások
Showing
3 changed files
with
546 additions
and
492 deletions
Show diff stats
Vrh.Log4Pro.MaintenanceConsole/Manager - MSMQManager - MSMQ.cs deleted
... | ... | @@ -1,426 +0,0 @@ |
1 | -using System; | |
2 | -using System.Collections.Generic; | |
3 | -using System.Linq; | |
4 | -using System.Messaging; | |
5 | -using System.Text; | |
6 | -using System.Threading.Tasks; | |
7 | - | |
8 | -using Vrh.Log4Pro.MaintenanceConsole.MenuNS; | |
9 | -using Vrh.Log4Pro.MaintenanceConsole.ColorConsoleNS; | |
10 | -using Vrh.Log4Pro.MaintenanceConsole.ToolsNS; | |
11 | -using Vrh.Log4Pro.MaintenanceConsole.CommandLineParserNS; | |
12 | - | |
13 | -using Vrh.XmlProcessing; | |
14 | -using VRH.Common; | |
15 | -using System.Xml.Linq; | |
16 | -using System.Text.RegularExpressions; | |
17 | - | |
18 | - | |
19 | -namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS | |
20 | -{ | |
21 | - public class MSMQ : XmlLinqBase | |
22 | - { | |
23 | - #region fields | |
24 | - public bool Valid = true; | |
25 | - public string Xml_Key; | |
26 | - public string Xml_Name; | |
27 | - public string Xml_AddressPrefix = XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.AddressPrefix.Values.DEFAULT; | |
28 | - public string Xml_Server = XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Server.Values.DEFAULT; | |
29 | - public bool Private; | |
30 | - public string Xml_Mode = XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Mode.Values.DEFAULT; | |
31 | - public string Xml_Label; | |
32 | - public string Xml_Formatter = XmlStructure.MSMQManager.General.DefaultFormatter.Values.DEFAULT; | |
33 | - public string Xml_Encoding = XmlStructure.MSMQManager.General.DefaultEncoding.Values.DEFAULT; | |
34 | - public List<AccessRights> Xml_AccessRights = new List<AccessRights>(); | |
35 | - | |
36 | - public string Status; | |
37 | - public string StatusDescription=null; | |
38 | - public Guid Id; | |
39 | - public string QueueName; | |
40 | - public long NumOfMessages; | |
41 | - public string Label; | |
42 | - public string MachineName; | |
43 | - public IMessageFormatter Formatter; | |
44 | - public string FormatName; | |
45 | - public string Path; | |
46 | - public DateTime LastModifyTime; | |
47 | - public QueueAccessMode AccessMode; | |
48 | - public bool CanRead; | |
49 | - public bool CanWrite; | |
50 | - public long MaximumQueueSize; | |
51 | - public bool UseJournalQueue; | |
52 | - public long MaximumJournalSize; | |
53 | - | |
54 | - public bool Transactional; | |
55 | - public bool Authenticate; | |
56 | - public int BasePriority; | |
57 | - public EncryptionRequired EncryptionRequired; | |
58 | - #endregion fields | |
59 | - | |
60 | - #region basic constructor | |
61 | - public MSMQ() { } | |
62 | - #endregion basic constructor | |
63 | - | |
64 | - #region constructor from MessageQueue | |
65 | - public MSMQ(MessageQueue msmq, string key) | |
66 | - { | |
67 | - Xml_Key = key; | |
68 | - Xml_Name = msmq.QueueName; | |
69 | - Xml_Label = msmq.QueueName; | |
70 | - Xml_Server = msmq.MachineName; | |
71 | - Private = msmq.QueueName.ToLower().StartsWith("private$"); | |
72 | - Xml_Formatter = msmq.Formatter.GetType().Name; | |
73 | - Xml_AddressPrefix = "FormatName:"+msmq.FormatName.Replace(msmq.MachineName+"\\"+msmq.QueueName,""); | |
74 | - } | |
75 | - #endregion constructor from MessageQueue | |
76 | - | |
77 | - #region xml constructor | |
78 | - public MSMQ(XElement msmqxml,MSMQDefaults msmqdefaults) | |
79 | - { | |
80 | - Valid = true; | |
81 | - string ATTRIBUTEMANDATORY = nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue) + " attribute is mandatory! Name: {0}"; | |
82 | - Xml_Key = GetValue(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Key), msmqxml, XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Key.Values.DEFAULT); | |
83 | - Xml_Name = msmqxml.Attribute(XName.Get(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Name)))?.Value; | |
84 | - if (string.IsNullOrWhiteSpace(Xml_Name)) { throw new ApplicationException(string.Format(ATTRIBUTEMANDATORY, nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Name))); } | |
85 | - Xml_AddressPrefix = GetValue(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.AddressPrefix), msmqxml, XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.AddressPrefix.Values.DEFAULT); | |
86 | - Xml_Server = GetValue(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Server), msmqxml, XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Server.Values.DEFAULT); | |
87 | - if (Xml_Server == "." || Xml_Server.ToLower() == "localhost") { Xml_Server = System.Environment.MachineName; } | |
88 | - | |
89 | - Private = Xml_Name.StartsWith("private$"); ; | |
90 | - Xml_Mode = GetValue(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Mode), msmqxml, XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Mode.Values.DEFAULT); | |
91 | - Xml_Label = GetValue(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Label), msmqxml, Xml_Name); | |
92 | - Xml_Formatter = GetValue(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Formatter), msmqxml, msmqdefaults.Xml_DefaultFormatter); | |
93 | - Xml_Encoding = GetValue(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Encoding), msmqxml, msmqdefaults.Xml_DefaultEncoding); | |
94 | - | |
95 | - foreach (var ar in msmqdefaults.Xml_AccessRights) { Xml_AccessRights.Add(ar); } | |
96 | - try | |
97 | - { | |
98 | - var arxmllist = GetAllXElements(msmqxml, nameof(MSMQ.XmlStructure.MSMQManager.MessageQueues.MessageQueue.AccessRight)); | |
99 | - foreach (var arxml in arxmllist) { var newa = AccessRights.Factory(arxml); if (newa != null) { Xml_AccessRights.Add(newa); } } | |
100 | - } | |
101 | - catch{ } | |
102 | - | |
103 | - | |
104 | - } | |
105 | - #endregion xml constructor | |
106 | - | |
107 | - #region Xml cloner constructor | |
108 | - public MSMQ(MSMQ msmq) | |
109 | - { | |
110 | - Valid = msmq.Valid; | |
111 | - Xml_Key = msmq.Xml_Key; | |
112 | - Xml_Name = msmq.Xml_Name; | |
113 | - Xml_Server = msmq.Xml_Server; | |
114 | - Private = msmq.Private; | |
115 | - Xml_Mode = msmq.Xml_Mode; | |
116 | - Xml_Label = msmq.Xml_Label; | |
117 | - Xml_Formatter= msmq.Xml_Formatter; | |
118 | - Xml_Encoding = msmq.Xml_Encoding; | |
119 | - } | |
120 | - #endregion Xml cloner constructor | |
121 | - | |
122 | - #region CollectMSMQInfo | |
123 | - public MSMQ CollectMSMQInfo() | |
124 | - { | |
125 | - MSMQ msmqdef = this; | |
126 | - string msmqaddressprefix = msmqdef.Xml_AddressPrefix; | |
127 | - string msmqservername = msmqdef.Xml_Server; | |
128 | - string msmqFullname = MSMQManagerCore.CreateFullQueuePath(msmqaddressprefix, msmqservername, msmqdef.Xml_Name); | |
129 | - msmqdef.QueueName = msmqdef.Xml_Name; | |
130 | - msmqdef.MachineName = msmqservername; | |
131 | - msmqdef.Path = msmqFullname; | |
132 | - try | |
133 | - { | |
134 | - msmqdef.Status = MessageQueue.Exists(msmqFullname) ? "Installed" : "Uninstalled"; | |
135 | - if (msmqdef.Status == "Installed") | |
136 | - { | |
137 | - using (var msmq = new MessageQueue(msmqFullname)) | |
138 | - { | |
139 | - msmqdef.QueueName = msmq.QueueName; | |
140 | - msmqdef.MachineName = msmq.MachineName; | |
141 | - | |
142 | - msmqdef.Id = msmq.Id; | |
143 | - msmqdef.NumOfMessages = MSMQManagerCore.Count(msmq); | |
144 | - msmqdef.Label = msmq.Label; | |
145 | - msmqdef.Formatter = msmq.Formatter; | |
146 | - msmqdef.FormatName = msmq.FormatName; | |
147 | - msmqdef.Path = msmq.Path; | |
148 | - msmqdef.LastModifyTime = msmq.LastModifyTime; | |
149 | - msmqdef.AccessMode = msmq.AccessMode; | |
150 | - msmqdef.CanRead = msmq.CanRead; | |
151 | - msmqdef.CanWrite = msmq.CanWrite; | |
152 | - msmqdef.MaximumQueueSize = msmq.MaximumQueueSize; | |
153 | - msmqdef.UseJournalQueue = msmq.UseJournalQueue; | |
154 | - msmqdef.MaximumJournalSize = msmq.MaximumJournalSize; | |
155 | - | |
156 | - msmqdef.Transactional = msmq.Transactional; | |
157 | - msmqdef.Authenticate = msmq.Authenticate; | |
158 | - msmqdef.BasePriority = msmq.BasePriority; | |
159 | - msmqdef.EncryptionRequired = msmq.EncryptionRequired; | |
160 | - | |
161 | - msmqdef.Status = "Ready"; | |
162 | - } | |
163 | - } | |
164 | - } | |
165 | - catch (Exception ex) { msmqdef.Status = "Error"; msmqdef.StatusDescription = ex.Message + (ex.InnerException != null ? ("\n" + ex.InnerException.Message) : ""); } | |
166 | - return msmqdef; | |
167 | - } | |
168 | - #endregion CollectMSMQInfo | |
169 | - | |
170 | - public string DisplayVeryShortInfo(int lineix) | |
171 | - { | |
172 | - MSMQ msmq = this; | |
173 | - if (lineix == 0) | |
174 | - { | |
175 | - ColorConsole.Write($"{msmq.Xml_Name}", ConsoleColor.Black, ConsoleColor.White, prefix: "Queue '", suffix: $"' queue label: '{msmq.Xml_Label}'."); | |
176 | - ConsoleColor statuscolor; | |
177 | - if (msmq.Status == "Uninstalled") { statuscolor = ConsoleColor.Red; } | |
178 | - else if (msmq.Status == "Error") { statuscolor = ConsoleColor.Red; } | |
179 | - else if (msmq.Status == "Installed") { statuscolor = ConsoleColor.Yellow; } | |
180 | - else if (msmq.Status == "Ready") { statuscolor = ConsoleColor.Green; } | |
181 | - else { statuscolor = ConsoleColor.Red; } | |
182 | - ColorConsole.Write(msmq.Status, statuscolor, bracket: "[]", prefix: " ", suffix: ". "); | |
183 | - ColorConsole.WriteLine(); | |
184 | - return " "; | |
185 | - } | |
186 | - else if (lineix == 1) | |
187 | - { | |
188 | - var privatepublictext = msmq.Private ? "private" : "public"; | |
189 | - ColorConsole.Write($"{msmq.Xml_AddressPrefix}", ConsoleColor.Black, ConsoleColor.White, prefix: "Format:", suffix: $" Queue is { privatepublictext }."); | |
190 | - ColorConsole.Write($"{msmq.Xml_Server}", ConsoleColor.Black, ConsoleColor.White, prefix: "Server:", suffix: $" Queue is { privatepublictext }."); | |
191 | - ColorConsole.WriteLine(); | |
192 | - return " "; | |
193 | - } | |
194 | - return null; | |
195 | - } | |
196 | - public string DisplayShortInfo(int lineix) | |
197 | - { | |
198 | - MSMQ msmq = this; | |
199 | - if (lineix == 0) | |
200 | - { | |
201 | - ColorConsole.Write($"{msmq.Xml_Name}", ConsoleColor.Black, ConsoleColor.White, prefix: "Queue '", suffix: $"' queue label: '{msmq.Xml_Label}'."); | |
202 | - ConsoleColor statuscolor; | |
203 | - if (msmq.Status == "Uninstalled") { statuscolor = ConsoleColor.Red; } | |
204 | - else if (msmq.Status == "Error") { statuscolor = ConsoleColor.Red; } | |
205 | - else if (msmq.Status == "Installed") { statuscolor = ConsoleColor.Yellow; } | |
206 | - else if (msmq.Status == "Ready") { statuscolor = ConsoleColor.Green; } | |
207 | - else { statuscolor = ConsoleColor.Red; } | |
208 | - ColorConsole.Write(msmq.Status, statuscolor, bracket: "[]", prefix: " ", suffix: ". "); | |
209 | - ColorConsole.WriteLine(); | |
210 | - return " "; | |
211 | - } | |
212 | - else if (lineix == 1) | |
213 | - { | |
214 | - var privatepublictext = msmq.Private ? "private" : "public"; | |
215 | - ColorConsole.Write($"{msmq.Xml_AddressPrefix}", ConsoleColor.Black, ConsoleColor.White, prefix: "Format:", suffix: $" Queue is { privatepublictext }."); | |
216 | - ColorConsole.Write($"{msmq.Xml_Server}", ConsoleColor.Black, ConsoleColor.White, prefix: "Server:", suffix: $" Queue is { privatepublictext }."); | |
217 | - ColorConsole.WriteLine(); | |
218 | - return " "; | |
219 | - } | |
220 | - else if (lineix == 2) | |
221 | - { | |
222 | - ColorConsole.Write($"{msmq.Path}", ConsoleColor.Yellow, prefix: "Path ", suffix: ", "); | |
223 | - ColorConsole.WriteLine(); | |
224 | - return " "; | |
225 | - } | |
226 | - else if (lineix == 3) | |
227 | - { | |
228 | - if (msmq.StatusDescription != null) | |
229 | - { | |
230 | - ConsoleColor color = ConsoleColor.Yellow; | |
231 | - if (msmq.Status == "Ready") { color = ConsoleColor.Green; } | |
232 | - else if (msmq.Status == "Error") { color = ConsoleColor.Red; } | |
233 | - ColorConsole.Write($"{msmq.StatusDescription}", color, prefix: "Status description "); | |
234 | - ColorConsole.WriteLine(); | |
235 | - return " "; | |
236 | - } | |
237 | - return "";//empty=van még szöveg, de most nem történt kiírás | |
238 | - } | |
239 | - else if (lineix == 4) | |
240 | - { | |
241 | - if (msmq.Status == "Ready") | |
242 | - { | |
243 | - ColorConsole.Write($"{msmq.FormatName}", ConsoleColor.Yellow, prefix: "FormatName "); | |
244 | - ColorConsole.WriteLine(); | |
245 | - return " "; | |
246 | - } | |
247 | - return ""; | |
248 | - } | |
249 | - else if (lineix == 5) | |
250 | - { | |
251 | - if (msmq.Status == "Ready") | |
252 | - { | |
253 | - ColorConsole.Write($"{msmq.Id}", ConsoleColor.Yellow, prefix: "Id "); | |
254 | - ColorConsole.WriteLine(); | |
255 | - return " "; | |
256 | - } | |
257 | - return ""; | |
258 | - } | |
259 | - else if (lineix == 6) | |
260 | - { | |
261 | - if (msmq.Status == "Ready") | |
262 | - { | |
263 | - ColorConsole.Write(msmq.NumOfMessages.ToString(), ConsoleColor.Yellow, prefix: "Num.of msgs in queue ", suffix: ". "); | |
264 | - ColorConsole.Write($"{msmq.LastModifyTime}", ConsoleColor.Yellow, prefix: "LastModified ", suffix: ", "); | |
265 | - ColorConsole.WriteLine(); | |
266 | - return " "; | |
267 | - } | |
268 | - return ""; | |
269 | - } | |
270 | - else if (lineix == 7) | |
271 | - { | |
272 | - if (msmq.Status == "Ready") | |
273 | - { | |
274 | - ColorConsole.Write($"{msmq.AccessMode}", ConsoleColor.Yellow, prefix: "AccessMode ", suffix: ", "); | |
275 | - ColorConsole.Write($"{msmq.CanRead}", ConsoleColor.Yellow, prefix: "CanRead ", suffix: ", "); | |
276 | - ColorConsole.Write($"{msmq.CanWrite}", ConsoleColor.Yellow, prefix: "CanWrite ", suffix: ", "); | |
277 | - ColorConsole.WriteLine(); | |
278 | - return " "; | |
279 | - } | |
280 | - return ""; | |
281 | - } | |
282 | - return null; | |
283 | - } | |
284 | - | |
285 | - #region DisplayInfo | |
286 | - public void DisplayInfo() | |
287 | - { | |
288 | - MSMQ msmq = this; | |
289 | - ColorConsole.Write($">>> MSMQ detailed info collected for ", ConsoleColor.Yellow); | |
290 | - ColorConsole.Write($"{msmq.Xml_Name}", ConsoleColor.Yellow, suffix: ", ", prefix: " QueueName : "); | |
291 | - ColorConsole.Write($"{msmq.Xml_Server}", ConsoleColor.Yellow, prefix: "MachineName: "); | |
292 | - ColorConsole.WriteLine(); | |
293 | - var qqn = msmq.Xml_Name; | |
294 | - var qexists = MSMQManagerCore.CheckIfQueueExists(msmq.Xml_Server, qqn); | |
295 | - if (!qexists) | |
296 | - { | |
297 | - ColorConsole.WriteLine($" Queue does not exist!", ConsoleColor.Red); | |
298 | - } | |
299 | - else | |
300 | - { | |
301 | - try | |
302 | - { | |
303 | - msmq = msmq.CollectMSMQInfo(); | |
304 | - ColorConsole.WriteLine($"{msmq.QueueName}", ConsoleColor.Green, prefix: $" Queue name: "); | |
305 | - ColorConsole.WriteLine($"{msmq.MachineName}", ConsoleColor.Green, prefix: $" Server: "); | |
306 | - if (msmq.Status == "Error") | |
307 | - { | |
308 | - ColorConsole.WriteLine($"{msmq.Status}", ConsoleColor.Red, prefix: $" Status: "); | |
309 | - ColorConsole.WriteLine($"{msmq.StatusDescription}", ConsoleColor.Red, prefix: " StatusDescription: "); | |
310 | - } | |
311 | - else if (msmq.Status != "Ready") | |
312 | - { | |
313 | - ColorConsole.WriteLine($"{msmq.Status}", ConsoleColor.Yellow, prefix: $" Status: "); | |
314 | - ColorConsole.WriteLine($"{msmq.StatusDescription}", ConsoleColor.Yellow, prefix: " StatusDescription: "); | |
315 | - } | |
316 | - else | |
317 | - { | |
318 | - ColorConsole.WriteLine($"{msmq.Status}", ConsoleColor.Green, prefix: $" Status: "); | |
319 | - ColorConsole.WriteLine($"{msmq.StatusDescription}", ConsoleColor.Green, prefix: " StatusDescription: "); | |
320 | - ColorConsole.WriteLine($"{msmq.Id}", ConsoleColor.Green, prefix: " Id: "); | |
321 | - ColorConsole.WriteLine($"{msmq.Label}", ConsoleColor.Green, prefix: " Label: "); | |
322 | - ColorConsole.WriteLine($"{msmq.Path}", ConsoleColor.Green, prefix: " Path: "); | |
323 | - ColorConsole.WriteLine($"{msmq.FormatName}", ConsoleColor.Green, prefix: " FormatName: "); | |
324 | - ColorConsole.Write($"{msmq.Transactional}", ConsoleColor.Green, prefix: " Transactional: ", suffix: ", "); | |
325 | - ColorConsole.Write($"{msmq.UseJournalQueue}", ConsoleColor.Green, suffix: ", ", prefix: "UseJournalQueue: "); | |
326 | - ColorConsole.Write($"{msmq.AccessMode}", ConsoleColor.Green, suffix: ", ", prefix: "AccessMode: "); | |
327 | - ColorConsole.Write($"{msmq.CanRead}", ConsoleColor.Green, suffix: ", ", prefix: "CanRead: "); | |
328 | - ColorConsole.Write($"{msmq.CanWrite}", ConsoleColor.Green, suffix: ", ", prefix: "CanWrite: "); | |
329 | - ColorConsole.WriteLine(); | |
330 | - ColorConsole.Write($"{msmq.Authenticate}", ConsoleColor.Green, suffix: ", ", prefix: " Authenticate: "); | |
331 | - ColorConsole.Write($"{msmq.BasePriority}", ConsoleColor.Green, suffix: ", ", prefix: "BasePriority: "); | |
332 | - ColorConsole.Write($"{msmq.EncryptionRequired}", ConsoleColor.Green, suffix: ", ", prefix: "EncryptionRequired: "); | |
333 | - ColorConsole.WriteLine(); | |
334 | - ColorConsole.Write($"{msmq.Formatter}", ConsoleColor.Green, suffix: ", ", prefix: " Formatter: "); | |
335 | - ColorConsole.Write($"{msmq.LastModifyTime}", ConsoleColor.Green, suffix: ", ", prefix: "LastModifyTime: "); | |
336 | - ColorConsole.WriteLine(); | |
337 | - ColorConsole.Write($"{msmq.NumOfMessages}", ConsoleColor.Green, suffix: ", ", prefix: " NumOfMessages: "); | |
338 | - ColorConsole.Write($"{msmq.MaximumJournalSize}", ConsoleColor.Green, suffix: ", ", prefix: "MaximumJournalSize: "); | |
339 | - ColorConsole.Write($"{msmq.MaximumQueueSize}", ConsoleColor.Green, suffix: ", ", prefix: "MaximumQueueSize: "); | |
340 | - ColorConsole.WriteLine(); | |
341 | - } | |
342 | - } | |
343 | - catch (Exception ex) { ColorConsole.WriteLine(" " + ex.Message, ConsoleColor.Red); } | |
344 | - } | |
345 | - } | |
346 | - #endregion DisplayInfo | |
347 | - | |
348 | - #region XmlStructure | |
349 | - public static class XmlStructure | |
350 | - { | |
351 | - public static class MSMQManager | |
352 | - { | |
353 | - public static class General | |
354 | - { | |
355 | - public static class AccessRights | |
356 | - { | |
357 | - public static class AccessRight | |
358 | - { | |
359 | - public static class Attributes | |
360 | - { | |
361 | - public static class Username { public static class Values { public const string DEFAULT = "Everyone"; } } | |
362 | - public static class Right {public static class Values { public const string DEFAULT = nameof(MessageQueueAccessRights.FullControl); } } | |
363 | - public static class Control { public static class Values { public const string DEFAULT = nameof(AccessControlEntryType.Allow); } } | |
364 | - } | |
365 | - } | |
366 | - } | |
367 | - public static class MessageFiles | |
368 | - { | |
369 | - public static class Attributes | |
370 | - { | |
371 | - public static class Directory { public static class Values { public const string DEFAULT = ""; } } | |
372 | - public static class SendToMask { public static class Values { public const string DEFAULT = "*.*"; } } | |
373 | - public static class ReadToMask { public static class Values { public const string DEFAULT = "*.*"; } } | |
374 | - } | |
375 | - } | |
376 | - public static class DefaultFormatter { public static class Values { public const string DEFAULT = nameof(ActiveXMessageFormatter); } } | |
377 | - public static class DefaultEncoding { public static class Values { public const string DEFAULT = nameof(System.Text.Encoding.UTF8); } } | |
378 | - } | |
379 | - | |
380 | - public static class MessageQueues | |
381 | - { | |
382 | - public static class MessageQueue | |
383 | - { | |
384 | - public static class Attributes | |
385 | - { | |
386 | - public static class Key { public static class Values { public const string DEFAULT = ""; } } | |
387 | - public static class AddressPrefix{ public static class Values { public const string DEFAULT = ""; } } | |
388 | - public static class Server { public static class Values { public const string DEFAULT = "."; } } | |
389 | - public static class Name { } | |
390 | - public static class Label { } | |
391 | - public static class Mode | |
392 | - { | |
393 | - public static class Values | |
394 | - { | |
395 | - public const string DEFAULT = "In"; | |
396 | - public static class In { } | |
397 | - public static class Out { } | |
398 | - } | |
399 | - } | |
400 | - public static class Formatter | |
401 | - { | |
402 | - public static class Values | |
403 | - { | |
404 | - public static class ActiveXMessageFormatter { } | |
405 | - public static class BinaryMessageFormatter { } | |
406 | - public static class XmlMessageFormatter { } | |
407 | - } | |
408 | - } | |
409 | - public static class Encoding { } | |
410 | - } | |
411 | - public static class AccessRight | |
412 | - { | |
413 | - public static class Attributes | |
414 | - { | |
415 | - public static class Username { public static class Values { public const string DEFAULT = "Everyone"; } } | |
416 | - public static class Right { public static class Values { public const string DEFAULT = nameof(MessageQueueAccessRights.FullControl); } } | |
417 | - public static class Control { public static class Values { public const string DEFAULT = nameof(AccessControlEntryType.Allow); } } | |
418 | - } | |
419 | - } | |
420 | - } | |
421 | - } | |
422 | - } | |
423 | - } | |
424 | - #endregion XmlStructure | |
425 | - } | |
426 | -} |
Vrh.Log4Pro.MaintenanceConsole/Manager - MSMQManager.cs
... | ... | @@ -74,16 +74,11 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS |
74 | 74 | var fullpath = MSMQManagerCore.CreateFullQueuePath(st.Xml_AddressPrefix, st.Xml_Server, st.Xml_Name); |
75 | 75 | MSMQManagerCore.CreateQueue(fullpath, st.Xml_Label); |
76 | 76 | ColorConsole.WriteLine($"MSMQ:{st.Xml_Name} created.", ConsoleColor.Green); |
77 | - foreach (var a in st.Xml_AccessRights) | |
77 | + foreach (var accessright in st.Xml_AccessRights) | |
78 | 78 | { |
79 | - MSMQManagerCore.SetPermissions(fullpath, a.un, a.ar, a.ac); | |
80 | - string ctrlstring = | |
81 | - a.ac == AccessControlEntryType.Allow ? "allowed" | |
82 | - : a.ac == AccessControlEntryType.Deny ? "denied" | |
83 | - : a.ac == AccessControlEntryType.Revoke ? "revoked" | |
84 | - : a.ac == AccessControlEntryType.Set ? "set" | |
85 | - : "???"; | |
86 | - ColorConsole.WriteLine($"Access right {a.ar} {ctrlstring} for user:{a.un}.", ConsoleColor.Green); | |
79 | + MSMQManagerCore.SetPermissions(fullpath, accessright.un, accessright.ar, accessright.ac); | |
80 | + string ctrlstring = accessright.AccessControlEntryTypeText(); | |
81 | + ColorConsole.WriteLine($"Access right {accessright.ar} {ctrlstring} for user:{accessright.un}.", ConsoleColor.Green); | |
87 | 82 | } |
88 | 83 | } |
89 | 84 | catch (Exception ex) { ColorConsole.WriteLine(ex.Message, ConsoleColor.Red); } |
... | ... | @@ -140,17 +135,12 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS |
140 | 135 | MSMQ st = p.Parameters as MSMQ; |
141 | 136 | try |
142 | 137 | { |
143 | - foreach (var a in st.Xml_AccessRights) | |
138 | + foreach (var accessright in st.Xml_AccessRights) | |
144 | 139 | { |
145 | 140 | var fullpath = MSMQManagerCore.CreateFullQueuePath(st.Xml_AddressPrefix, st.Xml_Server, st.Xml_Name); |
146 | - MSMQManagerCore.SetPermissions(fullpath, a.un, a.ar, a.ac); | |
147 | - string ctrlstring = | |
148 | - a.ac == AccessControlEntryType.Allow ? "allowed" | |
149 | - : a.ac == AccessControlEntryType.Deny ? "denied" | |
150 | - : a.ac == AccessControlEntryType.Revoke ? "revoked" | |
151 | - : a.ac == AccessControlEntryType.Set ? "set" | |
152 | - : "???"; | |
153 | - ColorConsole.WriteLine($"Access right {a.ar} {ctrlstring} for user:{a.un}.", ConsoleColor.Green); | |
141 | + MSMQManagerCore.SetPermissions(fullpath, accessright.un, accessright.ar, accessright.ac); | |
142 | + string ctrlstring = accessright.AccessControlEntryTypeText(); | |
143 | + ColorConsole.WriteLine($"Access right {accessright.ar} {ctrlstring} for user:{accessright.un}.", ConsoleColor.Green); | |
154 | 144 | } |
155 | 145 | } |
156 | 146 | catch (Exception ex) { ColorConsole.WriteLine(ex.Message, ConsoleColor.Red); } |
... | ... | @@ -247,13 +237,13 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS |
247 | 237 | var fullpath = MSMQManagerCore.CreateFullQueuePath(msmq.Xml_AddressPrefix, msmq.Xml_Server, msmq.Xml_Name); |
248 | 238 | MSMQManagerCore.Send(fullpath, sp.messagebody, sp.messagelabel, sp.messageformatter, sp.encoding); |
249 | 239 | ColorConsole.WriteLine($"Sending to '{fullpath}' ....", ConsoleColor.Yellow); |
250 | - MSMQManagerCore.ReadLast(fullpath, sp.messageformatter, sp.encoding, out string body, out string label); | |
251 | - if (sp.messagebody == body && sp.messagelabel == label) { ColorConsole.WriteLine($"Message successfully sent to '{fullpath}' and read back!", ConsoleColor.Green); } | |
252 | - else | |
240 | + Message msg = MSMQManagerCore.PeekLast(fullpath, sp.messageformatter, sp.encoding, out string body, out string label); | |
241 | + TestSendCheckMessage(fullpath, msg, sp, body, label, "message sending/peek back"); | |
242 | + var ans = ColorConsole.ReadLine($"Do You want to remove this test message (lookup id='{msg.LookupId}') from quue?", ConsoleColor.Yellow,validitylist:new List<string> { "yes","no"},defaultvalue:"yes"); | |
243 | + if (ans.ToLower() == "yes") | |
253 | 244 | { |
254 | - ColorConsole.WriteLine(body, prefix: "Read back body: ", f: ConsoleColor.Red); | |
255 | - ColorConsole.WriteLine(label, prefix: "Read back label: ", f: ConsoleColor.Red); | |
256 | - ColorConsole.WriteLine($"Message sending or read back is failed to '{fullpath}' !", ConsoleColor.Red); | |
245 | + msg = MSMQManagerCore.ReadById(fullpath, msg.LookupId, sp.messageformatter, sp.encoding, out body, out label); | |
246 | + TestSendCheckMessage(fullpath, msg, sp, body, label, "Read back."); | |
257 | 247 | } |
258 | 248 | } |
259 | 249 | } |
... | ... | @@ -262,6 +252,16 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS |
262 | 252 | return o; |
263 | 253 | } |
264 | 254 | |
255 | + private static void TestSendCheckMessage(string fullpath,Message msg, SendParameters sp, string body, string label,string actiontext) | |
256 | + { | |
257 | + if (sp.messagebody == body && sp.messagelabel == label) { ColorConsole.WriteLine($"Success! Action:{actiontext}. Queue:'{fullpath}'.", ConsoleColor.Green); } | |
258 | + else | |
259 | + { | |
260 | + ColorConsole.WriteLine(body, prefix: $"{actiontext} body: ", f: ConsoleColor.Red); | |
261 | + ColorConsole.WriteLine(label, prefix: $"{actiontext} label: ", f: ConsoleColor.Red); | |
262 | + ColorConsole.WriteLine($"Failure! Action:{actiontext}. Queue:'{fullpath}'.", ConsoleColor.Red); | |
263 | + } | |
264 | + } | |
265 | 265 | private static object GetLocalInfo(object parameter, object o) |
266 | 266 | { |
267 | 267 | var config = (parameter as Menu.ExecutorParameter).GetConfig<MSMQManagerXmlProcessor>(); |
... | ... | @@ -307,8 +307,10 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS |
307 | 307 | MSMQ st = p.Parameters as MSMQ; |
308 | 308 | try |
309 | 309 | { |
310 | + var messageformatter = MSMQManagerCore.SetFormatter(st.Xml_Formatter); //new ActiveXMessageFormatter(); | |
311 | + var encoding = MSMQManagerCore.SetEncoding(st.Xml_Encoding); // Encoding.UTF8; | |
310 | 312 | var fullpath = MSMQManagerCore.CreateFullQueuePath(st.Xml_AddressPrefix, st.Xml_Server, st.Xml_Name); |
311 | - MSMQManagerCore.Peek(fullpath, out string msgbody, out string msglabel); | |
313 | + MSMQManagerCore.Peek(fullpath, messageformatter, encoding, out string msgbody, out string msglabel); | |
312 | 314 | ColorConsole.WriteLine($"Message peeked from MSMQ:{st.Xml_Name}", ConsoleColor.Green); |
313 | 315 | ColorConsole.WriteLine($" Body: {msgbody}", ConsoleColor.Yellow); |
314 | 316 | ColorConsole.WriteLine($" Label: {msglabel}", ConsoleColor.Yellow); |
... | ... | @@ -341,8 +343,8 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS |
341 | 343 | MSMQ st = p.Parameters as MSMQ; |
342 | 344 | try |
343 | 345 | { |
344 | - var messageformatter = new ActiveXMessageFormatter(); | |
345 | - var encoding = Encoding.UTF8; | |
346 | + var messageformatter = MSMQManagerCore.SetFormatter(st.Xml_Formatter); //new ActiveXMessageFormatter(); | |
347 | + var encoding = MSMQManagerCore.SetEncoding(st.Xml_Encoding); // Encoding.UTF8; | |
346 | 348 | var fullpath = MSMQManagerCore.CreateFullQueuePath(st.Xml_AddressPrefix, st.Xml_Server, st.Xml_Name); |
347 | 349 | MSMQManagerCore.Read(fullpath, messageformatter, encoding, out string msgbody, out string msglabel); |
348 | 350 | ColorConsole.WriteLine($"Message read from MSMQ:{st.Xml_Name}", ConsoleColor.Green); |
... | ... | @@ -550,7 +552,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS |
550 | 552 | if (!string.IsNullOrWhiteSpace(label)) { msmq.Label = label; } |
551 | 553 | } |
552 | 554 | } |
553 | - public static void SetPermissions(string msmqFullname,string username, MessageQueueAccessRights accessrights, AccessControlEntryType controltype) | |
555 | + public static void SetPermissions(string msmqFullname,string username, MessageQueueAccessRights accessrights, AccessControlEntryType controltype) | |
554 | 556 | { |
555 | 557 | using (var msmq = new MessageQueue(msmqFullname)) |
556 | 558 | { |
... | ... | @@ -571,7 +573,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS |
571 | 573 | // | MessageQueueAccessRights.ReceiveMessage |
572 | 574 | // | MessageQueueAccessRights.SetQueueProperties |
573 | 575 | // | MessageQueueAccessRights.DeleteQueue; |
574 | - msmq.SetPermissions("EveryOne", accessrights, controltype); | |
576 | + msmq.SetPermissions(username, accessrights, controltype); | |
575 | 577 | } |
576 | 578 | } |
577 | 579 | |
... | ... | @@ -586,29 +588,74 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS |
586 | 588 | msmq.Purge(); |
587 | 589 | } |
588 | 590 | } |
589 | - public static void Peek(string msmqFullname, out string body, out string label) | |
591 | + public static Message Peek(string msmqFullname, IMessageFormatter messageformatter, Encoding encoding, out string body, out string label) | |
590 | 592 | { |
593 | + body = ""; | |
594 | + label = ""; | |
591 | 595 | using (var msmq = new MessageQueue(msmqFullname)) |
592 | 596 | { |
597 | + if (Count(msmq) == 0) { return null; } | |
598 | + | |
599 | + msmq.Formatter = messageformatter; | |
593 | 600 | Message m = msmq.Peek(new TimeSpan(0)); |
594 | - m.BodyStream.Position = 0; | |
595 | - var sr = new System.IO.StreamReader(m.BodyStream); | |
596 | 601 | label = m.Label; |
597 | - body = sr.ReadToEnd().Replace(((char)0).ToString(), ""); | |
602 | + //m.BodyStream.Position = 0; | |
603 | + //var sr = new System.IO.StreamReader(m.BodyStream); | |
604 | + //body = sr.ReadToEnd().Replace(((char)0).ToString(), ""); | |
605 | + body = encoding.GetString((byte[])m.Body); | |
606 | + return m; | |
598 | 607 | } |
599 | 608 | } |
600 | - public static void Read(string msmqFullname, IMessageFormatter messageformatter, Encoding encoding, out string body, out string label) | |
609 | + public static Message PeekLast(string msmqFullname, IMessageFormatter messageformatter, Encoding encoding, out string body, out string label) | |
601 | 610 | { |
611 | + body = ""; | |
612 | + label = ""; | |
602 | 613 | using (var msmq = new MessageQueue(msmqFullname)) |
603 | 614 | { |
615 | + if (Count(msmq) == 0) { return null; } | |
616 | + | |
604 | 617 | //frmA = new System.Messaging.ActiveXMessageFormatter(); |
605 | 618 | //frmA = new System.Messaging.BinaryMessageFormatter(); |
606 | 619 | //frmA = new System.Messaging.XmlMessageFormatter(); |
607 | 620 | msmq.Formatter = messageformatter; |
621 | + //Message m = msmq.Receive(new TimeSpan(0)); | |
622 | + var m = msmq.PeekByLookupId(MessageLookupAction.Last, 0); | |
623 | + label = m.Label; | |
624 | + body = encoding.GetString((byte[])m.Body); | |
625 | + return m; | |
608 | 626 | |
609 | - Message m = msmq.Receive(new TimeSpan(0)); | |
610 | - m.BodyStream.Position = 0; | |
611 | 627 | |
628 | + //m.BodyStream.Position = 0; | |
629 | + | |
630 | + //// encoding = System.Text.Encoding.UTF8; | |
631 | + //// encoding = System.Text.Encoding.UTF7; | |
632 | + //// encoding = System.Text.Encoding.UTF32; | |
633 | + //// encoding = System.Text.Encoding.Unicode; | |
634 | + //// encoding = System.Text.Encoding.BigEndianUnicode; | |
635 | + //// encoding = System.Text.Encoding.ASCII; | |
636 | + //// encoding = System.Text.Encoding.Default; | |
637 | + //var sr = new System.IO.StreamReader(m.BodyStream, encoding); | |
638 | + //body = sr.ReadToEnd().Replace(((char)0).ToString(), ""); | |
639 | + } | |
640 | + } | |
641 | + public static Message Read(string msmqFullname, IMessageFormatter messageformatter, Encoding encoding, out string body, out string label) | |
642 | + { | |
643 | + body = ""; | |
644 | + label = ""; | |
645 | + using (var msmq = new MessageQueue(msmqFullname)) | |
646 | + { | |
647 | + if (Count(msmq) == 0) { return null; } | |
648 | + | |
649 | + //frmA = new System.Messaging.ActiveXMessageFormatter(); | |
650 | + //frmA = new System.Messaging.BinaryMessageFormatter(); | |
651 | + //frmA = new System.Messaging.XmlMessageFormatter(); | |
652 | + msmq.Formatter = messageformatter; | |
653 | + | |
654 | + Message m = msmq.Receive(new TimeSpan(0)); | |
655 | + label = m.Label; | |
656 | + //m.BodyStream.Position = 0; | |
657 | + //var sr = new System.IO.StreamReader(m.BodyStream, encoding); | |
658 | + //body = sr.ReadToEnd().Replace(((char)0).ToString(), ""); | |
612 | 659 | // encoding = System.Text.Encoding.UTF8; |
613 | 660 | // encoding = System.Text.Encoding.UTF7; |
614 | 661 | // encoding = System.Text.Encoding.UTF32; |
... | ... | @@ -616,41 +663,55 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS |
616 | 663 | // encoding = System.Text.Encoding.BigEndianUnicode; |
617 | 664 | // encoding = System.Text.Encoding.ASCII; |
618 | 665 | // encoding = System.Text.Encoding.Default; |
619 | - var sr = new System.IO.StreamReader(m.BodyStream, encoding); | |
666 | + body = encoding.GetString((byte[])m.Body); | |
667 | + return m; | |
668 | + } | |
669 | + } | |
670 | + public static Message ReadLast(string msmqFullname, IMessageFormatter messageformatter, Encoding encoding, out string body, out string label) | |
671 | + { | |
672 | + body = ""; | |
673 | + label = ""; | |
674 | + using (var msmq = new MessageQueue(msmqFullname)) | |
675 | + { | |
676 | + if (Count(msmq) == 0) { return null; } | |
677 | + | |
678 | + //frmA = new System.Messaging.ActiveXMessageFormatter(); | |
679 | + //frmA = new System.Messaging.BinaryMessageFormatter(); | |
680 | + //frmA = new System.Messaging.XmlMessageFormatter(); | |
681 | + msmq.Formatter = messageformatter; | |
682 | + //Message m = msmq.Receive(new TimeSpan(0)); | |
683 | + var m = msmq.ReceiveByLookupId(MessageLookupAction.Last, 0, null); | |
620 | 684 | label = m.Label; |
621 | - body = sr.ReadToEnd().Replace(((char)0).ToString(), ""); | |
685 | + body = encoding.GetString((byte[])m.Body); | |
686 | + | |
687 | + | |
688 | + //m.BodyStream.Position = 0; | |
689 | + | |
690 | + //// encoding = System.Text.Encoding.UTF8; | |
691 | + //// encoding = System.Text.Encoding.UTF7; | |
692 | + //// encoding = System.Text.Encoding.UTF32; | |
693 | + //// encoding = System.Text.Encoding.Unicode; | |
694 | + //// encoding = System.Text.Encoding.BigEndianUnicode; | |
695 | + //// encoding = System.Text.Encoding.ASCII; | |
696 | + //// encoding = System.Text.Encoding.Default; | |
697 | + //var sr = new System.IO.StreamReader(m.BodyStream, encoding); | |
698 | + //body = sr.ReadToEnd().Replace(((char)0).ToString(), ""); | |
699 | + return m; | |
622 | 700 | } |
623 | 701 | } |
624 | - public static void ReadLast(string msmqFullname, IMessageFormatter messageformatter, Encoding encoding, out string body, out string label) | |
702 | + public static Message ReadById(string msmqFullname, long msgid, IMessageFormatter messageformatter, Encoding encoding, out string body, out string label) | |
625 | 703 | { |
626 | 704 | body = ""; |
627 | 705 | label = ""; |
628 | 706 | using (var msmq = new MessageQueue(msmqFullname)) |
629 | 707 | { |
630 | - if (Count(msmq)>0) | |
631 | - { | |
632 | - //frmA = new System.Messaging.ActiveXMessageFormatter(); | |
633 | - //frmA = new System.Messaging.BinaryMessageFormatter(); | |
634 | - //frmA = new System.Messaging.XmlMessageFormatter(); | |
635 | - msmq.Formatter = messageformatter; | |
636 | - //Message m = msmq.Receive(new TimeSpan(0)); | |
637 | - var m = msmq.ReceiveByLookupId(MessageLookupAction.Last, 0, null); | |
638 | - label = m.Label; | |
639 | - body = encoding.GetString((byte[])m.Body); | |
640 | - | |
641 | - | |
642 | - //m.BodyStream.Position = 0; | |
643 | - | |
644 | - //// encoding = System.Text.Encoding.UTF8; | |
645 | - //// encoding = System.Text.Encoding.UTF7; | |
646 | - //// encoding = System.Text.Encoding.UTF32; | |
647 | - //// encoding = System.Text.Encoding.Unicode; | |
648 | - //// encoding = System.Text.Encoding.BigEndianUnicode; | |
649 | - //// encoding = System.Text.Encoding.ASCII; | |
650 | - //// encoding = System.Text.Encoding.Default; | |
651 | - //var sr = new System.IO.StreamReader(m.BodyStream, encoding); | |
652 | - //body = sr.ReadToEnd().Replace(((char)0).ToString(), ""); | |
653 | - } | |
708 | + if (Count(msmq) == 0) {return null; } | |
709 | + | |
710 | + msmq.Formatter = messageformatter; | |
711 | + var m = msmq.ReceiveByLookupId(msgid); | |
712 | + label = m.Label; | |
713 | + body = encoding.GetString((byte[])m.Body); | |
714 | + return m; | |
654 | 715 | } |
655 | 716 | } |
656 | 717 | public static void Send(string msmqFullname, string messagetosend, string messagelabel, IMessageFormatter messageformatter, Encoding encoding) |
... | ... | @@ -693,9 +754,9 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS |
693 | 754 | r.Add(nameof(MSMQ.XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Formatter.Values.XmlMessageFormatter)); |
694 | 755 | return r; |
695 | 756 | } |
696 | - public static Encoding SetEncoding(string formattername) | |
757 | + public static Encoding SetEncoding(string encodingname) | |
697 | 758 | { |
698 | - switch (formattername) | |
759 | + switch (encodingname) | |
699 | 760 | { |
700 | 761 | case nameof(Encoding.UTF8): return Encoding.UTF8; |
701 | 762 | case nameof(Encoding.UTF7): return Encoding.UTF7; |
... | ... | @@ -758,6 +819,17 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS |
758 | 819 | } |
759 | 820 | catch { return null; } |
760 | 821 | } |
822 | + | |
823 | + public string AccessControlEntryTypeText() | |
824 | + { | |
825 | + AccessRights accessright = this; | |
826 | + return accessright.ac == AccessControlEntryType.Allow ? "allowed" | |
827 | + : accessright.ac == AccessControlEntryType.Deny ? "denied" | |
828 | + : accessright.ac == AccessControlEntryType.Revoke ? "revoked" | |
829 | + : accessright.ac == AccessControlEntryType.Set ? "set" | |
830 | + : "???"; | |
831 | + } | |
832 | + | |
761 | 833 | public string un; |
762 | 834 | public MessageQueueAccessRights ar; |
763 | 835 | public AccessControlEntryType ac; |
... | ... | @@ -790,4 +862,413 @@ namespace Vrh.Log4Pro.MaintenanceConsole.MSMQManagerNS |
790 | 862 | } |
791 | 863 | } |
792 | 864 | #endregion Defaults class |
865 | + | |
866 | + #region MSMQ | |
867 | + public class MSMQ : XmlLinqBase | |
868 | + { | |
869 | + #region fields | |
870 | + public bool Valid = true; | |
871 | + public string Xml_Key; | |
872 | + public string Xml_Name; | |
873 | + public string Xml_AddressPrefix = XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.AddressPrefix.Values.DEFAULT; | |
874 | + public string Xml_Server = XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Server.Values.DEFAULT; | |
875 | + public bool Private; | |
876 | + public string Xml_Mode = XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Mode.Values.DEFAULT; | |
877 | + public string Xml_Label; | |
878 | + public string Xml_Formatter = XmlStructure.MSMQManager.General.DefaultFormatter.Values.DEFAULT; | |
879 | + public string Xml_Encoding = XmlStructure.MSMQManager.General.DefaultEncoding.Values.DEFAULT; | |
880 | + public List<AccessRights> Xml_AccessRights = new List<AccessRights>(); | |
881 | + | |
882 | + public string Status; | |
883 | + public string StatusDescription = null; | |
884 | + public Guid Id; | |
885 | + public string QueueName; | |
886 | + public long NumOfMessages; | |
887 | + public string Label; | |
888 | + public string MachineName; | |
889 | + public IMessageFormatter Formatter; | |
890 | + public string FormatName; | |
891 | + public string Path; | |
892 | + public DateTime LastModifyTime; | |
893 | + public QueueAccessMode AccessMode; | |
894 | + public bool CanRead; | |
895 | + public bool CanWrite; | |
896 | + public long MaximumQueueSize; | |
897 | + public bool UseJournalQueue; | |
898 | + public long MaximumJournalSize; | |
899 | + | |
900 | + public bool Transactional; | |
901 | + public bool Authenticate; | |
902 | + public int BasePriority; | |
903 | + public EncryptionRequired EncryptionRequired; | |
904 | + #endregion fields | |
905 | + | |
906 | + #region basic constructor | |
907 | + public MSMQ() { } | |
908 | + #endregion basic constructor | |
909 | + | |
910 | + #region constructor from MessageQueue | |
911 | + public MSMQ(MessageQueue msmq, string key) | |
912 | + { | |
913 | + Xml_Key = key; | |
914 | + Xml_Name = msmq.QueueName; | |
915 | + Xml_Label = msmq.QueueName; | |
916 | + Xml_Server = msmq.MachineName; | |
917 | + Private = msmq.QueueName.ToLower().StartsWith("private$"); | |
918 | + Xml_Formatter = msmq.Formatter.GetType().Name; | |
919 | + Xml_AddressPrefix = "FormatName:" + msmq.FormatName.Replace(msmq.MachineName + "\\" + msmq.QueueName, ""); | |
920 | + } | |
921 | + #endregion constructor from MessageQueue | |
922 | + | |
923 | + #region xml constructor | |
924 | + public MSMQ(XElement msmqxml, MSMQDefaults msmqdefaults) | |
925 | + { | |
926 | + Valid = true; | |
927 | + string ATTRIBUTEMANDATORY = nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue) + " attribute is mandatory! Name: {0}"; | |
928 | + Xml_Key = GetValue(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Key), msmqxml, XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Key.Values.DEFAULT); | |
929 | + Xml_Name = msmqxml.Attribute(XName.Get(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Name)))?.Value; | |
930 | + if (string.IsNullOrWhiteSpace(Xml_Name)) { throw new ApplicationException(string.Format(ATTRIBUTEMANDATORY, nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Name))); } | |
931 | + Xml_AddressPrefix = GetValue(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.AddressPrefix), msmqxml, XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.AddressPrefix.Values.DEFAULT); | |
932 | + Xml_Server = GetValue(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Server), msmqxml, XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Server.Values.DEFAULT); | |
933 | + if (Xml_Server == "." || Xml_Server.ToLower() == "localhost") { Xml_Server = System.Environment.MachineName; } | |
934 | + | |
935 | + Private = Xml_Name.StartsWith("private$"); ; | |
936 | + Xml_Mode = GetValue(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Mode), msmqxml, XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Mode.Values.DEFAULT); | |
937 | + Xml_Label = GetValue(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Label), msmqxml, Xml_Name); | |
938 | + Xml_Formatter = GetValue(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Formatter), msmqxml, msmqdefaults.Xml_DefaultFormatter); | |
939 | + Xml_Encoding = GetValue(nameof(XmlStructure.MSMQManager.MessageQueues.MessageQueue.Attributes.Encoding), msmqxml, msmqdefaults.Xml_DefaultEncoding); | |
940 | + | |
941 | + foreach (var ar in msmqdefaults.Xml_AccessRights) { Xml_AccessRights.Add(ar); } | |
942 | + try | |
943 | + { | |
944 | + var arxmllist = GetAllXElements(msmqxml, nameof(MSMQ.XmlStructure.MSMQManager.MessageQueues.MessageQueue.AccessRight)); | |
945 | + foreach (var arxml in arxmllist) { var newa = AccessRights.Factory(arxml); if (newa != null) { Xml_AccessRights.Add(newa); } } | |
946 | + } | |
947 | + catch { } | |
948 | + | |
949 | + | |
950 | + } | |
951 | + #endregion xml constructor | |
952 | + | |
953 | + #region Xml cloner constructor | |
954 | + public MSMQ(MSMQ msmq) | |
955 | + { | |
956 | + Valid = msmq.Valid; | |
957 | + Xml_Key = msmq.Xml_Key; | |
958 | + Xml_Name = msmq.Xml_Name; | |
959 | + Xml_Server = msmq.Xml_Server; | |
960 | + Private = msmq.Private; | |
961 | + Xml_Mode = msmq.Xml_Mode; | |
962 | + Xml_Label = msmq.Xml_Label; | |
963 | + Xml_Formatter = msmq.Xml_Formatter; | |
964 | + Xml_Encoding = msmq.Xml_Encoding; | |
965 | + } | |
966 | + #endregion Xml cloner constructor | |
967 | + | |
968 | + #region CollectMSMQInfo | |
969 | + public MSMQ CollectMSMQInfo() | |
970 | + { | |
971 | + MSMQ msmqdef = this; | |
972 | + string msmqaddressprefix = msmqdef.Xml_AddressPrefix; | |
973 | + string msmqservername = msmqdef.Xml_Server; | |
974 | + string msmqFullname = MSMQManagerCore.CreateFullQueuePath(msmqaddressprefix, msmqservername, msmqdef.Xml_Name); | |
975 | + msmqdef.QueueName = msmqdef.Xml_Name; | |
976 | + msmqdef.MachineName = msmqservername; | |
977 | + msmqdef.Path = msmqFullname; | |
978 | + try | |
979 | + { | |
980 | + msmqdef.Status = MessageQueue.Exists(msmqFullname) ? "Installed" : "Uninstalled"; | |
981 | + if (msmqdef.Status == "Installed") | |
982 | + { | |
983 | + using (var msmq = new MessageQueue(msmqFullname)) | |
984 | + { | |
985 | + msmqdef.QueueName = msmq.QueueName; | |
986 | + msmqdef.MachineName = msmq.MachineName; | |
987 | + | |
988 | + msmqdef.Id = msmq.Id; | |
989 | + msmqdef.NumOfMessages = MSMQManagerCore.Count(msmq); | |
990 | + msmqdef.Label = msmq.Label; | |
991 | + msmqdef.Formatter = msmq.Formatter; | |
992 | + msmqdef.FormatName = msmq.FormatName; | |
993 | + msmqdef.Path = msmq.Path; | |
994 | + msmqdef.LastModifyTime = msmq.LastModifyTime; | |
995 | + msmqdef.AccessMode = msmq.AccessMode; | |
996 | + msmqdef.CanRead = msmq.CanRead; | |
997 | + msmqdef.CanWrite = msmq.CanWrite; | |
998 | + msmqdef.MaximumQueueSize = msmq.MaximumQueueSize; | |
999 | + msmqdef.UseJournalQueue = msmq.UseJournalQueue; | |
1000 | + msmqdef.MaximumJournalSize = msmq.MaximumJournalSize; | |
1001 | + | |
1002 | + msmqdef.Transactional = msmq.Transactional; | |
1003 | + msmqdef.Authenticate = msmq.Authenticate; | |
1004 | + msmqdef.BasePriority = msmq.BasePriority; | |
1005 | + msmqdef.EncryptionRequired = msmq.EncryptionRequired; | |
1006 | + | |
1007 | + msmqdef.Status = "Ready"; | |
1008 | + } | |
1009 | + } | |
1010 | + } | |
1011 | + catch (Exception ex) { msmqdef.Status = "Error"; msmqdef.StatusDescription = ex.Message + (ex.InnerException != null ? ("\n" + ex.InnerException.Message) : ""); } | |
1012 | + return msmqdef; | |
1013 | + } | |
1014 | + #endregion CollectMSMQInfo | |
1015 | + | |
1016 | + public string DisplayVeryShortInfo(int lineix) | |
1017 | + { | |
1018 | + MSMQ msmq = this; | |
1019 | + if (lineix == 0) | |
1020 | + { | |
1021 | + ColorConsole.Write($"{msmq.Xml_Name}", ConsoleColor.Black, ConsoleColor.White, prefix: "Queue '", suffix: $"' queue label: '{msmq.Xml_Label}'."); | |
1022 | + ConsoleColor statuscolor; | |
1023 | + if (msmq.Status == "Uninstalled") { statuscolor = ConsoleColor.Red; } | |
1024 | + else if (msmq.Status == "Error") { statuscolor = ConsoleColor.Red; } | |
1025 | + else if (msmq.Status == "Installed") { statuscolor = ConsoleColor.Yellow; } | |
1026 | + else if (msmq.Status == "Ready") { statuscolor = ConsoleColor.Green; } | |
1027 | + else { statuscolor = ConsoleColor.Red; } | |
1028 | + ColorConsole.Write(msmq.Status, statuscolor, bracket: "[]", prefix: " ", suffix: ". "); | |
1029 | + ColorConsole.WriteLine(); | |
1030 | + return " "; | |
1031 | + } | |
1032 | + else if (lineix == 1) | |
1033 | + { | |
1034 | + var privatepublictext = msmq.Private ? "private" : "public"; | |
1035 | + ColorConsole.Write($"{msmq.Xml_AddressPrefix}", ConsoleColor.Black, ConsoleColor.White, prefix: "Format:", suffix: $" Queue is { privatepublictext }."); | |
1036 | + ColorConsole.Write($"{msmq.Xml_Server}", ConsoleColor.Black, ConsoleColor.White, prefix: "Server:", suffix: $" Queue is { privatepublictext }."); | |
1037 | + ColorConsole.WriteLine(); | |
1038 | + return " "; | |
1039 | + } | |
1040 | + return null; | |
1041 | + } | |
1042 | + public string DisplayShortInfo(int lineix) | |
1043 | + { | |
1044 | + MSMQ msmq = this; | |
1045 | + if (lineix == 0) | |
1046 | + { | |
1047 | + ColorConsole.Write($"{msmq.Xml_Name}", ConsoleColor.Black, ConsoleColor.White, prefix: "Queue '", suffix: $"' queue label: '{msmq.Xml_Label}'."); | |
1048 | + ConsoleColor statuscolor; | |
1049 | + if (msmq.Status == "Uninstalled") { statuscolor = ConsoleColor.Red; } | |
1050 | + else if (msmq.Status == "Error") { statuscolor = ConsoleColor.Red; } | |
1051 | + else if (msmq.Status == "Installed") { statuscolor = ConsoleColor.Yellow; } | |
1052 | + else if (msmq.Status == "Ready") { statuscolor = ConsoleColor.Green; } | |
1053 | + else { statuscolor = ConsoleColor.Red; } | |
1054 | + ColorConsole.Write(msmq.Status, statuscolor, bracket: "[]", prefix: " ", suffix: ". "); | |
1055 | + ColorConsole.WriteLine(); | |
1056 | + return " "; | |
1057 | + } | |
1058 | + else if (lineix == 1) | |
1059 | + { | |
1060 | + var privatepublictext = msmq.Private ? "private" : "public"; | |
1061 | + ColorConsole.Write($"{msmq.Xml_AddressPrefix}", ConsoleColor.Black, ConsoleColor.White, prefix: "Format:", suffix: $" Queue is { privatepublictext }."); | |
1062 | + ColorConsole.Write($"{msmq.Xml_Server}", ConsoleColor.Black, ConsoleColor.White, prefix: "Server:", suffix: $" Queue is { privatepublictext }."); | |
1063 | + ColorConsole.WriteLine(); | |
1064 | + return " "; | |
1065 | + } | |
1066 | + else if (lineix == 2) | |
1067 | + { | |
1068 | + ColorConsole.Write($"{msmq.Path}", ConsoleColor.Yellow, prefix: "Path ", suffix: ", "); | |
1069 | + ColorConsole.WriteLine(); | |
1070 | + return " "; | |
1071 | + } | |
1072 | + else if (lineix == 3) | |
1073 | + { | |
1074 | + if (msmq.StatusDescription != null) | |
1075 | + { | |
1076 | + ConsoleColor color = ConsoleColor.Yellow; | |
1077 | + if (msmq.Status == "Ready") { color = ConsoleColor.Green; } | |
1078 | + else if (msmq.Status == "Error") { color = ConsoleColor.Red; } | |
1079 | + ColorConsole.Write($"{msmq.StatusDescription}", color, prefix: "Status description "); | |
1080 | + ColorConsole.WriteLine(); | |
1081 | + return " "; | |
1082 | + } | |
1083 | + return "";//empty=van még szöveg, de most nem történt kiírás | |
1084 | + } | |
1085 | + else if (lineix == 4) | |
1086 | + { | |
1087 | + if (msmq.Status == "Ready") | |
1088 | + { | |
1089 | + ColorConsole.Write($"{msmq.FormatName}", ConsoleColor.Yellow, prefix: "FormatName "); | |
1090 | + ColorConsole.WriteLine(); | |
1091 | + return " "; | |
1092 | + } | |
1093 | + return ""; | |
1094 | + } | |
1095 | + else if (lineix == 5) | |
1096 | + { | |
1097 | + if (msmq.Status == "Ready") | |
1098 | + { | |
1099 | + ColorConsole.Write($"{msmq.Id}", ConsoleColor.Yellow, prefix: "Id "); | |
1100 | + ColorConsole.WriteLine(); | |
1101 | + return " "; | |
1102 | + } | |
1103 | + return ""; | |
1104 | + } | |
1105 | + else if (lineix == 6) | |
1106 | + { | |
1107 | + if (msmq.Status == "Ready") | |
1108 | + { | |
1109 | + ColorConsole.Write(msmq.NumOfMessages.ToString(), ConsoleColor.Yellow, prefix: "Num.of msgs in queue ", suffix: ". "); | |
1110 | + ColorConsole.Write($"{msmq.LastModifyTime}", ConsoleColor.Yellow, prefix: "LastModified ", suffix: ", "); | |
1111 | + ColorConsole.WriteLine(); | |
1112 | + return " "; | |
1113 | + } | |
1114 | + return ""; | |
1115 | + } | |
1116 | + else if (lineix == 7) | |
1117 | + { | |
1118 | + if (msmq.Status == "Ready") | |
1119 | + { | |
1120 | + ColorConsole.Write($"{msmq.AccessMode}", ConsoleColor.Yellow, prefix: "AccessMode ", suffix: ", "); | |
1121 | + ColorConsole.Write($"{msmq.CanRead}", ConsoleColor.Yellow, prefix: "CanRead ", suffix: ", "); | |
1122 | + ColorConsole.Write($"{msmq.CanWrite}", ConsoleColor.Yellow, prefix: "CanWrite ", suffix: ", "); | |
1123 | + ColorConsole.WriteLine(); | |
1124 | + return " "; | |
1125 | + } | |
1126 | + return ""; | |
1127 | + } | |
1128 | + return null; | |
1129 | + } | |
1130 | + | |
1131 | + #region DisplayInfo | |
1132 | + public void DisplayInfo() | |
1133 | + { | |
1134 | + MSMQ msmq = this; | |
1135 | + ColorConsole.Write($">>> MSMQ detailed info collected for ", ConsoleColor.Yellow); | |
1136 | + ColorConsole.Write($"{msmq.Xml_Name}", ConsoleColor.Yellow, suffix: ", ", prefix: " QueueName : "); | |
1137 | + ColorConsole.Write($"{msmq.Xml_Server}", ConsoleColor.Yellow, prefix: "MachineName: "); | |
1138 | + ColorConsole.WriteLine(); | |
1139 | + var qqn = msmq.Xml_Name; | |
1140 | + var qexists = MSMQManagerCore.CheckIfQueueExists(msmq.Xml_Server, qqn); | |
1141 | + if (!qexists) | |
1142 | + { | |
1143 | + ColorConsole.WriteLine($" Queue does not exist!", ConsoleColor.Red); | |
1144 | + } | |
1145 | + else | |
1146 | + { | |
1147 | + try | |
1148 | + { | |
1149 | + msmq = msmq.CollectMSMQInfo(); | |
1150 | + ColorConsole.WriteLine($"{msmq.QueueName}", ConsoleColor.Green, prefix: $" Queue name: "); | |
1151 | + ColorConsole.WriteLine($"{msmq.MachineName}", ConsoleColor.Green, prefix: $" Server: "); | |
1152 | + if (msmq.Status == "Error") | |
1153 | + { | |
1154 | + ColorConsole.WriteLine($"{msmq.Status}", ConsoleColor.Red, prefix: $" Status: "); | |
1155 | + ColorConsole.WriteLine($"{msmq.StatusDescription}", ConsoleColor.Red, prefix: " StatusDescription: "); | |
1156 | + } | |
1157 | + else if (msmq.Status != "Ready") | |
1158 | + { | |
1159 | + ColorConsole.WriteLine($"{msmq.Status}", ConsoleColor.Yellow, prefix: $" Status: "); | |
1160 | + ColorConsole.WriteLine($"{msmq.StatusDescription}", ConsoleColor.Yellow, prefix: " StatusDescription: "); | |
1161 | + } | |
1162 | + else | |
1163 | + { | |
1164 | + ColorConsole.WriteLine($"{msmq.Status}", ConsoleColor.Green, prefix: $" Status: "); | |
1165 | + ColorConsole.WriteLine($"{msmq.StatusDescription}", ConsoleColor.Green, prefix: " StatusDescription: "); | |
1166 | + ColorConsole.WriteLine($"{msmq.Id}", ConsoleColor.Green, prefix: " Id: "); | |
1167 | + ColorConsole.WriteLine($"{msmq.Label}", ConsoleColor.Green, prefix: " Label: "); | |
1168 | + ColorConsole.WriteLine($"{msmq.Path}", ConsoleColor.Green, prefix: " Path: "); | |
1169 | + ColorConsole.WriteLine($"{msmq.FormatName}", ConsoleColor.Green, prefix: " FormatName: "); | |
1170 | + ColorConsole.Write($"{msmq.Transactional}", ConsoleColor.Green, prefix: " Transactional: ", suffix: ", "); | |
1171 | + ColorConsole.Write($"{msmq.UseJournalQueue}", ConsoleColor.Green, suffix: ", ", prefix: "UseJournalQueue: "); | |
1172 | + ColorConsole.Write($"{msmq.AccessMode}", ConsoleColor.Green, suffix: ", ", prefix: "AccessMode: "); | |
1173 | + ColorConsole.Write($"{msmq.CanRead}", ConsoleColor.Green, suffix: ", ", prefix: "CanRead: "); | |
1174 | + ColorConsole.Write($"{msmq.CanWrite}", ConsoleColor.Green, suffix: ", ", prefix: "CanWrite: "); | |
1175 | + ColorConsole.WriteLine(); | |
1176 | + ColorConsole.Write($"{msmq.Authenticate}", ConsoleColor.Green, suffix: ", ", prefix: " Authenticate: "); | |
1177 | + ColorConsole.Write($"{msmq.BasePriority}", ConsoleColor.Green, suffix: ", ", prefix: "BasePriority: "); | |
1178 | + ColorConsole.Write($"{msmq.EncryptionRequired}", ConsoleColor.Green, suffix: ", ", prefix: "EncryptionRequired: "); | |
1179 | + ColorConsole.WriteLine(); | |
1180 | + ColorConsole.Write($"{msmq.Formatter}", ConsoleColor.Green, suffix: ", ", prefix: " Formatter: "); | |
1181 | + ColorConsole.Write($"{msmq.LastModifyTime}", ConsoleColor.Green, suffix: ", ", prefix: "LastModifyTime: "); | |
1182 | + ColorConsole.WriteLine(); | |
1183 | + ColorConsole.Write($"{msmq.NumOfMessages}", ConsoleColor.Green, suffix: ", ", prefix: " NumOfMessages: "); | |
1184 | + ColorConsole.Write($"{msmq.MaximumJournalSize}", ConsoleColor.Green, suffix: ", ", prefix: "MaximumJournalSize: "); | |
1185 | + ColorConsole.Write($"{msmq.MaximumQueueSize}", ConsoleColor.Green, suffix: ", ", prefix: "MaximumQueueSize: "); | |
1186 | + ColorConsole.WriteLine(); | |
1187 | + } | |
1188 | + } | |
1189 | + catch (Exception ex) { ColorConsole.WriteLine(" " + ex.Message, ConsoleColor.Red); } | |
1190 | + } | |
1191 | + } | |
1192 | + #endregion DisplayInfo | |
1193 | + | |
1194 | + #region XmlStructure | |
1195 | + public static class XmlStructure | |
1196 | + { | |
1197 | + public static class MSMQManager | |
1198 | + { | |
1199 | + public static class General | |
1200 | + { | |
1201 | + public static class AccessRights | |
1202 | + { | |
1203 | + public static class AccessRight | |
1204 | + { | |
1205 | + public static class Attributes | |
1206 | + { | |
1207 | + public static class Username { public static class Values { public const string DEFAULT = "Everyone"; } } | |
1208 | + public static class Right { public static class Values { public const string DEFAULT = nameof(MessageQueueAccessRights.FullControl); } } | |
1209 | + public static class Control { public static class Values { public const string DEFAULT = nameof(AccessControlEntryType.Allow); } } | |
1210 | + } | |
1211 | + } | |
1212 | + } | |
1213 | + public static class MessageFiles | |
1214 | + { | |
1215 | + public static class Attributes | |
1216 | + { | |
1217 | + public static class Directory { public static class Values { public const string DEFAULT = ""; } } | |
1218 | + public static class SendToMask { public static class Values { public const string DEFAULT = "*.*"; } } | |
1219 | + public static class ReadToMask { public static class Values { public const string DEFAULT = "*.*"; } } | |
1220 | + } | |
1221 | + } | |
1222 | + public static class DefaultFormatter { public static class Values { public const string DEFAULT = nameof(ActiveXMessageFormatter); } } | |
1223 | + public static class DefaultEncoding { public static class Values { public const string DEFAULT = nameof(System.Text.Encoding.UTF8); } } | |
1224 | + } | |
1225 | + | |
1226 | + public static class MessageQueues | |
1227 | + { | |
1228 | + public static class MessageQueue | |
1229 | + { | |
1230 | + public static class Attributes | |
1231 | + { | |
1232 | + public static class Key { public static class Values { public const string DEFAULT = ""; } } | |
1233 | + public static class AddressPrefix { public static class Values { public const string DEFAULT = ""; } } | |
1234 | + public static class Server { public static class Values { public const string DEFAULT = "."; } } | |
1235 | + public static class Name { } | |
1236 | + public static class Label { } | |
1237 | + public static class Mode | |
1238 | + { | |
1239 | + public static class Values | |
1240 | + { | |
1241 | + public const string DEFAULT = "In"; | |
1242 | + public static class In { } | |
1243 | + public static class Out { } | |
1244 | + } | |
1245 | + } | |
1246 | + public static class Formatter | |
1247 | + { | |
1248 | + public static class Values | |
1249 | + { | |
1250 | + public static class ActiveXMessageFormatter { } | |
1251 | + public static class BinaryMessageFormatter { } | |
1252 | + public static class XmlMessageFormatter { } | |
1253 | + } | |
1254 | + } | |
1255 | + public static class Encoding { } | |
1256 | + } | |
1257 | + public static class AccessRight | |
1258 | + { | |
1259 | + public static class Attributes | |
1260 | + { | |
1261 | + public static class Username { public static class Values { public const string DEFAULT = "Everyone"; } } | |
1262 | + public static class Right { public static class Values { public const string DEFAULT = nameof(MessageQueueAccessRights.FullControl); } } | |
1263 | + public static class Control { public static class Values { public const string DEFAULT = nameof(AccessControlEntryType.Allow); } } | |
1264 | + } | |
1265 | + } | |
1266 | + } | |
1267 | + } | |
1268 | + } | |
1269 | + } | |
1270 | + #endregion XmlStructure | |
1271 | + } | |
1272 | + #endregion MSMQ | |
1273 | + | |
793 | 1274 | } | ... | ... |
Vrh.Log4Pro.MaintenanceConsole/Vrh.Log4Pro.MaintenanceConsole.csproj
... | ... | @@ -359,7 +359,6 @@ |
359 | 359 | <Compile Include="ConsoleFunction - Tools.cs" /> |
360 | 360 | <Compile Include="Manager - BackupPackageManager.cs" /> |
361 | 361 | <Compile Include="Manager - InstallManager.cs" /> |
362 | - <Compile Include="Manager - MSMQManager - MSMQ.cs" /> | |
363 | 362 | <Compile Include="Manager - MSMQManager.cs" /> |
364 | 363 | <Compile Include="Manager - UserManager.cs" /> |
365 | 364 | <Compile Include="Manager - SQLDataBaseManager.cs" /> | ... | ... |