public Microsoft.XLANGs.Core.StopConditions segment0(Microsoft.XLANGs.Core.StopConditions stopOn) { Microsoft.XLANGs.Core.Segment __seg__ = _segments[0]; Microsoft.XLANGs.Core.Context __ctx__ = (Microsoft.XLANGs.Core.Context)_stateMgrs[0]; __Orchestration_1_root_0 __ctx0__ = (__Orchestration_1_root_0)_stateMgrs[0]; __Orchestration_1_1 __ctx1__ = (__Orchestration_1_1)_stateMgrs[1]; switch (__seg__.Progress) { case 0: Port_1 = new PortType_1(0, this); Port_2 = new PortType_2(1, this); __ctx__.PrologueCompleted = true; __ctx0__.__subWrapper0 = new Microsoft.XLANGs.Core.SubscriptionWrapper(ActivationSubGuids[0], Port_1, this); if (!PostProgressInc(__seg__, __ctx__, 1)) { return(Microsoft.XLANGs.Core.StopConditions.Paused); } if ((stopOn & Microsoft.XLANGs.Core.StopConditions.Initialized) != 0) { return(Microsoft.XLANGs.Core.StopConditions.Initialized); } goto case 1; case 1: __ctx1__ = new __Orchestration_1_1(this); _stateMgrs[1] = __ctx1__; if (!PostProgressInc(__seg__, __ctx__, 2)) { return(Microsoft.XLANGs.Core.StopConditions.Paused); } goto case 2; case 2: __ctx0__.StartContext(__seg__, __ctx1__); if (!PostProgressInc(__seg__, __ctx__, 3)) { return(Microsoft.XLANGs.Core.StopConditions.Paused); } return(Microsoft.XLANGs.Core.StopConditions.Blocked); case 3: if (!__ctx0__.CleanupAndPrepareToCommit(__seg__)) { return(Microsoft.XLANGs.Core.StopConditions.Blocked); } if (!PostProgressInc(__seg__, __ctx__, 4)) { return(Microsoft.XLANGs.Core.StopConditions.Paused); } goto case 4; case 4: __ctx1__.Finally(); ServiceDone(__seg__, (Microsoft.XLANGs.Core.Context)_stateMgrs[0]); __ctx0__.OnCommit(); break; } return(Microsoft.XLANGs.Core.StopConditions.Completed); }