1: using System;
2: using System.Collections.Generic;
3: using System.Data;
4: using System.Linq;
5: using System.Text.RegularExpressions;
6: using static Ia.Ngn.Cl.Model.Business.Heartbeat;
7:
8: namespace Ia.Ngn.Ofn.Wa.Model.Business
9: {
10: ////////////////////////////////////////////////////////////////////////////
11:
12: /// <summary publish="true">
13: /// Administration support class for Optical Fiber Network (OFN) web application (Intranet) model.
14: /// </summary>
15: ///
16: /// <remarks>
17: /// Copyright © 2006-2022 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
18: ///
19: /// This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
20: /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
21: ///
22: /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
23: /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
24: ///
25: /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
26: ///
27: /// Copyright notice: This notice may not be removed or altered from any source distribution.
28: /// </remarks>
29: public class Default
30: {
31: /// <summary/>
32: public static Dictionary<string, DateTime> HeartbeatAssemblyNameToCreatedDateTimeDictionary = new Dictionary<string, DateTime>();
33:
34: ////////////////////////////////////////////////////////////////////////////
35:
36: /// <summary>
37: ///
38: /// </summary>
39: public Default()
40: {
41: }
42:
43: ////////////////////////////////////////////////////////////////////////////
44:
45: /// <summary>
46: ///
47: /// </summary>
48: public static void ManageMsmqQueue()
49: {
50: var queueCount = Ia.Ngn.Cl.Model.Data.Msmq.OfnApplication.Count;
51:
52: if (queueCount > 0)
53: {
54: var message = Ia.Ngn.Cl.Model.Data.Msmq.OfnApplication.Dequeue;
55:
56: if (message.Process == Ia.Ngn.Cl.Model.Business.Msmq.Process.ReadService)
57: {
58:
59: }
60: else if (message.Process == Ia.Ngn.Cl.Model.Business.Msmq.Process.Message)
61: {
62: HeartbeatAssemblyNameToCreatedDateTimeDictionary = message.DeserializePayload<Dictionary<string, DateTime>>();
63: }
64: else if (message.Process == Ia.Ngn.Cl.Model.Business.Msmq.Process.ActiveApplicationRunningPermissionState)
65: {
66: //Ia.Ngn.Cl.Model.Business.Default.PermitActiveApplicationsToRun = message.State;
67:
68: //r.AddSuccess("PermitActiveApplicationsToRun: " + message.State);
69: }
70: else
71: {
72: throw new ArgumentOutOfRangeException("MSMQ process " + message.Process.ToString() + " is undefined");
73: }
74: }
75: }
76:
77: ////////////////////////////////////////////////////////////////////////////
78: ////////////////////////////////////////////////////////////////////////////
79: }
80:
81: ////////////////////////////////////////////////////////////////////////////
82: ////////////////////////////////////////////////////////////////////////////
83: }