/// <summary> /// Determines the timer status browsing the related life-cycle event entries. /// </summary> public WorkflowItemState GetStatus(long eventId, IEnumerable<HistoryEvent> history) { if (history.IsTimerCanceled(eventId)) { return WorkflowItemState.Canceled; } if (history.IsTimerStartFailed(eventId)) { return WorkflowItemState.StartFailed; } if (history.IsTimerFired(eventId)) { return WorkflowItemState.Completed; } if (history.IsTimerCancelFailed(eventId)) { return WorkflowItemState.CancelFailed; } if (history.IsTimerStarted(eventId)) { return WorkflowItemState.Started; } throw new InvalidOperationException("Cannot determine the workflow status."); }