private void InvokeSendJobProgressModelWithSuccessEventHandler(JobDetailEntity jobDetail) { if (SendJobDetailWithSuccessEventHandler != null) { SendJobDetailWithSuccessEventHandler(this, jobDetail); } }
protected virtual void TrySendJobProgress() { if (_jobDetails != null && _jobDetails.Count > 0) { foreach (var sendJobProgressModel in _jobDetails) { try { var model = sendJobProgressModel; var task = Task.Factory.StartNew(async () => { JobDetailEntity jobDetail = new JobDetailEntity { JobId = model.Value.JobId, Detail = model.Value.Detail, Created = model.Value.Created }; var httpResponseMessage = await _httpSender.PostAsync(_uriBuilder.Uri, jobDetail); if (httpResponseMessage.IsSuccessStatusCode) { JobDetailEntity removedValue; var removed = _jobDetails.TryRemove(model.Key, out removedValue); if (removed) { InvokeSendJobProgressModelWithSuccessEventHandler(removedValue); } } }); task.Wait(); } catch (Exception) { var msg = string.Format("Send job progresses to manager failed for job ( jobId ) : ( {0} )", sendJobProgressModel.Value.JobId); Logger.ErrorWithLineNumber(msg); } } } }
public void SendProgress(Guid jobid, string progressMessage) { var progressModel = new JobDetailEntity { JobId = jobid, Detail = progressMessage, Created = DateTime.UtcNow }; _jobDetails.TryAdd(Guid.NewGuid(), progressModel); }