public LiveRelevantDataDO UpdateData() { LiveRelevantDataDO liveRelevantData = persistenceFacade.GetUpdateData(); currentState = (MachineState)liveRelevantData.CurrentState; liveRelevantData.BatchID = batchManager.CurrentBatch == null ? (ushort)0 : batchManager.CurrentBatch.BatchReportID; liveRelevantData.BatchSize = batchManager.CurrentBatch == null ? (ushort)0 : batchManager.CurrentBatch.BatchSize; liveRelevantData.AcceptableProducts = (liveRelevantData.ProducedProducts - liveRelevantData.DefectProducts); if (productionRunning) { Task task = Task.Run(() => { TimeSpan timeSpan = DateTime.Now.Subtract(startTime); liveRelevantData.StateDictionary[(int)currentState] += timeSpan; startTime = DateTime.Now; persistenceFacade.UpdateBatchReport(liveRelevantData); }); } return(liveRelevantData); }