aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob')
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs177
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/IRemoteJobService.cs14
2 files changed, 0 insertions, 191 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs
deleted file mode 100644
index 8826a8be3..000000000
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs
+++ /dev/null
@@ -1,177 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.BL.DTO;
-using Tango.Core;
-using Tango.Core.DI;
-using Tango.Integration.ExternalBridge;
-using Tango.Integration.Operation;
-using Tango.PPC.Common.Connection;
-using Tango.PPC.Common.ExternalBridge;
-using Tango.PPC.Shared.Jobs;
-
-namespace Tango.PPC.Common.RemoteJob
-{
- [TangoCreateWhenRegistered]
- public class DefaultRemoteJobService : IRemoteJobService, IExternalBridgeRequestHandler
- {
- private class RunningJobUpdateClient
- {
- public String Token { get; set; }
- public ExternalBridgeReceiver Receiver { get; set; }
- public bool JobSent { get; set; }
- }
-
- private List<RunningJobUpdateClient> _clients;
- private JobHandler _handler;
- private JobDTO _currentJobDTO;
- private ProcessParametersTableDTO _currentJobProcessParameters;
-
- public bool Enabled { get; set; } = true;
-
- private IMachineProvider MachineProvider { get; set; }
-
- public DefaultRemoteJobService(IPPCExternalBridgeService externalBridge, IMachineProvider machineProvider)
- {
- externalBridge.RegisterRequestHandler(this);
-
- MachineProvider = machineProvider;
-
- _clients = new List<RunningJobUpdateClient>();
- MachineProvider.MachineOperator.PrintingStarted += MachineOperator_PrintingStarted;
- }
-
- private async void MachineOperator_PrintingStarted(object sender, Integration.Operation.PrintingEventArgs e)
- {
- _handler = e.JobHandler;
-
- e.JobHandler.StatusChanged += JobHandler_StatusChanged;
- e.JobHandler.Stopped += JobHandler_Stopped;
-
- _currentJobDTO = JobDTO.FromObservable(e.Job);
- _currentJobProcessParameters = ProcessParametersTableDTO.FromObservable(_handler.ProcessParameters);
-
- foreach (var client in _clients.ToList())
- {
- try
- {
- RemoteJobProgress progress = new RemoteJobProgress();
- progress.Stage = RemoteJobStage.Started;
- progress.JobStatus = _handler.JobStatus;
-
- await client.Receiver.SendGenericResponse(new RemoteJobUpdateResponse()
- {
- Job = _currentJobDTO,
- ProcessParameters = _currentJobProcessParameters,
- Progress = progress
- }, client.Token);
-
- client.JobSent = true;
- }
- catch { }
- }
- }
-
- private async void JobHandler_StatusChanged(object sender, RunningJobStatus e)
- {
- foreach (var client in _clients.ToList())
- {
- if (client.JobSent)
- {
- try
- {
- await client.Receiver.SendGenericResponse(new RemoteJobUpdateResponse()
- {
- Progress = GetJobProgress(_handler)
- }, client.Token);
- }
- catch { }
- }
- else
- {
- try
- {
- RemoteJobProgress progress = new RemoteJobProgress();
- progress.Stage = RemoteJobStage.Started;
- progress.JobStatus = _handler.JobStatus;
-
- await client.Receiver.SendGenericResponse(new RemoteJobUpdateResponse()
- {
- Job = _currentJobDTO,
- ProcessParameters = _currentJobProcessParameters,
- Progress = progress
- }, client.Token);
-
- client.JobSent = true;
- }
- catch { }
- }
- }
- }
-
- private async void JobHandler_Stopped(object sender, EventArgs e)
- {
- foreach (var client in _clients.ToList().Where(x => x.JobSent))
- {
- try
- {
- await client.Receiver.SendGenericResponse(new RemoteJobUpdateResponse()
- {
- Progress = GetJobProgress(_handler),
- }, client.Token);
-
- client.JobSent = false;
- }
- catch { }
- }
- }
-
- private RemoteJobProgress GetJobProgress(JobHandler handler)
- {
- RemoteJobStage stage = RemoteJobStage.Running;
-
- if (_handler.Status.IsCanceled)
- {
- stage = RemoteJobStage.Aborted;
- }
- else if (_handler.Status.IsCompleted)
- {
- stage = RemoteJobStage.Completed;
- }
- else if (_handler.Status.IsFailed)
- {
- stage = RemoteJobStage.Failed;
- }
-
- return new RemoteJobProgress()
- {
- Stage = stage,
- JobStatus = handler.JobStatus,
- };
- }
-
- [ExternalBridgeRequestHandlerMethod(typeof(RemoteJobUpdateRequest), RequestHandlerLoggingMode.LogRequestName)]
- public async Task OnRunningJobUpdateRequest(RemoteJobUpdateRequest request, String token, ExternalBridgeReceiver receiver)
- {
- this.ThrowIfDisabled();
-
- if (!_clients.ToList().Exists(x => x.Receiver == receiver))
- {
- _clients.Add(new RunningJobUpdateClient()
- {
- Receiver = receiver,
- Token = token
- });
- }
-
- await receiver.SendGenericResponse(new RemoteJobUpdateResponse(), token);
- }
-
- public void OnReceiverDisconnected(ExternalBridgeReceiver receiver)
- {
- _clients.RemoveAll(x => x.Receiver == receiver);
- }
- }
-}
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/IRemoteJobService.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/IRemoteJobService.cs
deleted file mode 100644
index e7bfdbec1..000000000
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/IRemoteJobService.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.Integration.ExternalBridge;
-
-namespace Tango.PPC.Common.RemoteJob
-{
- public interface IRemoteJobService : IPPCService
- {
-
- }
-}