aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs')
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs43
1 files changed, 41 insertions, 2 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
index 1d010ecfb..733574f72 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs
@@ -31,10 +31,14 @@ using Tango.SharedUI.Helpers;
using Tango.SQLExaminer;
using Tango.Transport.Web;
using System.Data.Entity;
+using Tango.PPC.Common.ExternalBridge;
+using Tango.Integration.ExternalBridge;
+using Tango.BL.DTO;
+using Tango.PPC.Shared.Updates;
namespace Tango.PPC.Common.MachineUpdate
{
- public class MachineUpdateManager : ExtendedObject, IMachineUpdateManager
+ public class MachineUpdateManager : ExtendedObject, IMachineUpdateManager, IExternalBridgeRequestHandler
{
private IPPCApplicationManager _app_manager;
private IMachineProvider _machineProvider;
@@ -95,7 +99,7 @@ namespace Tango.PPC.Common.MachineUpdate
/// Initializes a new instance of the <see cref="MachineUpdateManager"/> class.
/// </summary>
/// <param name="applicationManager">The application manager.</param>
- public MachineUpdateManager(PPCWebClient ppcWebClient, IPPCApplicationManager applicationManager, IMachineProvider machineProvider, IPackageRunner packageRunner)
+ public MachineUpdateManager(PPCWebClient ppcWebClient, IPPCApplicationManager applicationManager, IMachineProvider machineProvider, IPackageRunner packageRunner, IPPCExternalBridgeService externalBridge)
{
_client = ppcWebClient;
_machineProvider = machineProvider;
@@ -111,6 +115,8 @@ namespace Tango.PPC.Common.MachineUpdate
_checkForUpdateTimer = new System.Timers.Timer(_settings.AutoUpdateCheckInterval.TotalMilliseconds);
_checkForUpdateTimer.Elapsed += _checkForUpdateTimer_Elapsed;
_checkForUpdateTimer.Start();
+
+ externalBridge.RegisterRequestHandler(this);
}
#endregion
@@ -1676,5 +1682,38 @@ namespace Tango.PPC.Common.MachineUpdate
}
#endregion
+
+ #region External Bridge
+
+ public void OnReceiverDisconnected(ExternalBridgeReceiver receiver)
+ {
+
+ }
+
+ [ExternalBridgeRequestHandlerMethod(typeof(GetUpdatesAndPackagesRequest))]
+ public async void OnGetUpdatesAndPackagesRequest(GetUpdatesAndPackagesRequest request, String token, ExternalBridgeReceiver receiver)
+ {
+ try
+ {
+ using (ObservablesContext db = ObservablesContext.CreateDefault())
+ {
+ var updates = await db.TangoUpdates.OrderByDescending(x => x.StartDate).ToListAsync();
+ var updatesDTO = updates.Select(x => TangoUpdateDTO.FromObservable(x)).ToList();
+ var packages = (await _packageRunner.GetPackagesFile()).PackageInstallations;
+
+ var response = new GetUpdatesAndPackagesResponse();
+ response.Updates.AddRange(updatesDTO);
+ response.Packages.AddRange(packages);
+
+ await receiver.SendGenericResponse(response, token);
+ }
+ }
+ catch (Exception ex)
+ {
+ await receiver.SendErrorResponse(ex, token);
+ }
+ }
+
+ #endregion
}
}