diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-05-28 16:41:29 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-05-28 16:41:29 +0300 |
| commit | 25d5ae2d526603cb5097d19f2e5f2525baa362d4 (patch) | |
| tree | c9ecbd6958ce4821bf7355ecff1f0b08d5b01e85 /Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteJob/DefaultRemoteJobService.cs | |
| parent | 353003efbcfd0f461b393d7242f1ef2d401c39fe (diff) | |
| download | Tango-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.cs | 44 |
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 { } } } |
