static SuspensionStateChange GetSuspensionReason(SaveWorkflowCommand saveWorkflowCommand, out string suspensionReason, out string suspensionExceptionName) { IDictionary <XName, InstanceValue> instanceMetadataChanges = saveWorkflowCommand.InstanceMetadataChanges; SuspensionStateChange suspensionStateChange = SuspensionStateChange.NoChange; InstanceValue propertyValue; suspensionReason = null; suspensionExceptionName = null; if (instanceMetadataChanges.TryGetValue(WorkflowServiceNamespace.SuspendReason, out propertyValue)) { if (!propertyValue.IsDeletedValue) { suspensionStateChange = SuspensionStateChange.SuspendInstance; suspensionReason = (string)propertyValue.Value; if (instanceMetadataChanges.TryGetValue(WorkflowServiceNamespace.SuspendException, out propertyValue) && !propertyValue.IsDeletedValue) { suspensionExceptionName = ((Exception)propertyValue.Value).GetType().ToString(); } } else { suspensionStateChange = SuspensionStateChange.UnsuspendInstance; } } return(suspensionStateChange); }
private static SuspensionStateChange GetSuspensionReason(SaveWorkflowCommand saveWorkflowCommand, out string suspensionReason, out string suspensionExceptionName) { InstanceValue value2; IDictionary <XName, InstanceValue> instanceMetadataChanges = saveWorkflowCommand.InstanceMetadataChanges; SuspensionStateChange noChange = SuspensionStateChange.NoChange; suspensionReason = null; suspensionExceptionName = null; if (!instanceMetadataChanges.TryGetValue(WorkflowServiceNamespace.SuspendReason, out value2)) { return(noChange); } if (!value2.IsDeletedValue) { noChange = SuspensionStateChange.SuspendInstance; suspensionReason = (string)value2.Value; if (instanceMetadataChanges.TryGetValue(WorkflowServiceNamespace.SuspendException, out value2) && !value2.IsDeletedValue) { suspensionExceptionName = ((Exception)value2.Value).GetType().ToString(); } return(noChange); } return(SuspensionStateChange.UnsuspendInstance); }