aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-05-28 16:41:29 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-05-28 16:41:29 +0300
commit25d5ae2d526603cb5097d19f2e5f2525baa362d4 (patch)
treec9ecbd6958ce4821bf7355ecff1f0b08d5b01e85 /Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs
parent353003efbcfd0f461b393d7242f1ef2d401c39fe (diff)
downloadTango-25d5ae2d526603cb5097d19f2e5f2525baa362d4.tar.gz
Tango-25d5ae2d526603cb5097d19f2e5f2525baa362d4.zip
JobResume refactored !
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs')
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs44
1 files changed, 34 insertions, 10 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
index 33e002950..8826a8be3 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs
@@ -26,6 +26,8 @@ namespace Tango.PPC.Common.RemoteJob
private List<RunningJobUpdateClient> _clients;
private JobHandler _handler;
+ private JobDTO _currentJobDTO;
+ private ProcessParametersTableDTO _currentJobProcessParameters;
public bool Enabled { get; set; } = true;
@@ -48,8 +50,8 @@ namespace Tango.PPC.Common.RemoteJob
e.JobHandler.StatusChanged += JobHandler_StatusChanged;
e.JobHandler.Stopped += JobHandler_Stopped;
- var jobDTO = JobDTO.FromObservable(e.Job);
- var processParametersDTO = ProcessParametersTableDTO.FromObservable(_handler.ProcessParameters);
+ _currentJobDTO = JobDTO.FromObservable(e.Job);
+ _currentJobProcessParameters = ProcessParametersTableDTO.FromObservable(_handler.ProcessParameters);
foreach (var client in _clients.ToList())
{
@@ -61,8 +63,8 @@ namespace Tango.PPC.Common.RemoteJob
await client.Receiver.SendGenericResponse(new RemoteJobUpdateResponse()
{
- Job = jobDTO,
- ProcessParameters = processParametersDTO,
+ Job = _currentJobDTO,
+ ProcessParameters = _currentJobProcessParameters,
Progress = progress
}, client.Token);
@@ -74,16 +76,38 @@ namespace Tango.PPC.Common.RemoteJob
private async void JobHandler_StatusChanged(object sender, RunningJobStatus e)
{
- foreach (var client in _clients.ToList().Where(x => x.JobSent))
+ foreach (var client in _clients.ToList())
{
- try
+ if (client.JobSent)
{
- await client.Receiver.SendGenericResponse(new RemoteJobUpdateResponse()
+ try
{
- Progress = GetJobProgress(_handler)
- }, client.Token);
+ 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 { }
}
- catch { }
}
}