public Microsoft.XLANGs.Core.StopConditions segment1(Microsoft.XLANGs.Core.StopConditions stopOn) { Microsoft.XLANGs.Core.Segment __seg__ = _segments[1]; Microsoft.XLANGs.Core.Context __ctx__ = (Microsoft.XLANGs.Core.Context)_stateMgrs[1]; __CalledOrch_root_0 __ctx0__ = (__CalledOrch_root_0)_stateMgrs[0]; __CalledOrch_1 __ctx1__ = (__CalledOrch_1)_stateMgrs[1]; switch (__seg__.Progress) { case 0: __ctx1__.__MessageIN = new __messagetype_LeaveProject_LeaveRequestSchema("MessageIN", __ctx1__); __ctx1__.__MessageIN.CopyFrom((Microsoft.XLANGs.Core.XMessage)Args[0]); __ctx1__.RefMessage(__ctx1__.__MessageIN); __ctx1__.__MessageIN.ConstructionCompleteEvent(); __ctx1__.__MessageOut = null; if ( !PostProgressInc( __seg__, __ctx__, 1 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; goto case 1; case 1: __ctx__.PrologueCompleted = true; if ( !PostProgressInc( __seg__, __ctx__, 2 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; goto case 2; case 2: if ( !PreProgressInc( __seg__, __ctx__, 3 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; Tracker.FireEvent(__eventLocations[1],__eventData[1],_stateMgrs[1].TrackDataStream ); if (IsDebugged) return Microsoft.XLANGs.Core.StopConditions.InBreakpoint; goto case 3; case 3: if ( !PreProgressInc( __seg__, __ctx__, 4 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; Tracker.FireEvent(__eventLocations[2],__eventData[2],_stateMgrs[1].TrackDataStream ); if (IsDebugged) return Microsoft.XLANGs.Core.StopConditions.InBreakpoint; goto case 4; case 4: { __messagetype_LeaveProject_LeaveRequestSchema __MessageOut = new __messagetype_LeaveProject_LeaveRequestSchema("MessageOut", __ctx1__); __MessageOut.CopyFrom(__ctx1__.__MessageIN); __MessageOut.part.SetDistinguishedField("Details.Reason", "Modifeid by Called Orch"); if (__ctx1__.__MessageOut != null) __ctx1__.UnrefMessage(__ctx1__.__MessageOut); __ctx1__.__MessageOut = __MessageOut; __ctx1__.RefMessage(__ctx1__.__MessageOut); } __ctx1__.__MessageOut.ConstructionCompleteEvent(false); if ( !PostProgressInc( __seg__, __ctx__, 5 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; goto case 5; case 5: if ( !PreProgressInc( __seg__, __ctx__, 6 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; { Microsoft.XLANGs.RuntimeTypes.EventData __edata = new Microsoft.XLANGs.RuntimeTypes.EventData(Microsoft.XLANGs.RuntimeTypes.Operation.End | Microsoft.XLANGs.RuntimeTypes.Operation.Construct); __edata.Messages.Add(__ctx1__.__MessageOut); Tracker.FireEvent(__eventLocations[3],__edata,_stateMgrs[1].TrackDataStream ); } if (IsDebugged) return Microsoft.XLANGs.Core.StopConditions.InBreakpoint; goto case 6; case 6: { Microsoft.XLANGs.RuntimeTypes.EventData __edata = new Microsoft.XLANGs.RuntimeTypes.EventData(Microsoft.XLANGs.RuntimeTypes.Operation.End | Microsoft.XLANGs.RuntimeTypes.Operation.Body); __edata.Messages.Add(__ctx1__.__MessageIN); __edata.Messages.Add(__ctx1__.__MessageOut); Tracker.FireEvent(__eventLocations[0],__edata,_stateMgrs[1].TrackDataStream ); } if (__ctx1__ != null && __ctx1__.__MessageIN != null) { __ctx1__.UnrefMessage(__ctx1__.__MessageIN); __ctx1__.__MessageIN = null; } if ( !PostProgressInc( __seg__, __ctx__, 7 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; goto case 7; case 7: if (!__ctx1__.CleanupAndPrepareToCommit(__seg__)) return Microsoft.XLANGs.Core.StopConditions.Blocked; if ( !PostProgressInc( __seg__, __ctx__, 8 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; goto case 8; case 8: if ( !PreProgressInc( __seg__, __ctx__, 9 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; __ctx1__.OnCommit(); goto case 9; case 9: ((Microsoft.XLANGs.Core.MessageTuple)(Args[1])).message = __ctx1__.__MessageOut; ((Microsoft.XLANGs.Core.MessageTuple)(Args[1])).context.RefMessage(__ctx1__.__MessageOut); if ( !PostProgressInc( __seg__, __ctx__, 10 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; goto case 10; case 10: __seg__.SegmentDone(); _segments[0].PredecessorDone(this); break; } return Microsoft.XLANGs.Core.StopConditions.Completed; }
public Microsoft.XLANGs.Core.StopConditions segment1(Microsoft.XLANGs.Core.StopConditions stopOn) { Microsoft.XLANGs.Core.Envelope __msgEnv__ = null; Microsoft.XLANGs.Core.Segment __seg__ = _segments[1]; Microsoft.XLANGs.Core.Context __ctx__ = (Microsoft.XLANGs.Core.Context)_stateMgrs[1]; __HRSubOrch_1 __ctx1__ = (__HRSubOrch_1)_stateMgrs[1]; __HRSubOrch_root_0 __ctx0__ = (__HRSubOrch_root_0)_stateMgrs[0]; switch (__seg__.Progress) { case 0: __ctx__.PrologueCompleted = true; if ( !PostProgressInc( __seg__, __ctx__, 1 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; goto case 1; case 1: if ( !PreProgressInc( __seg__, __ctx__, 2 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; Tracker.FireEvent(__eventLocations[0],__eventData[0],_stateMgrs[1].TrackDataStream ); if (IsDebugged) return Microsoft.XLANGs.Core.StopConditions.InBreakpoint; goto case 2; case 2: if ( !PreProgressInc( __seg__, __ctx__, 3 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; Tracker.FireEvent(__eventLocations[1],__eventData[1],_stateMgrs[1].TrackDataStream ); if (IsDebugged) return Microsoft.XLANGs.Core.StopConditions.InBreakpoint; goto case 3; case 3: if (!RecvFromEmpPort.GetMessageId(__ctx0__.__subWrapper0.getSubscription(this), __seg__, __ctx1__, out __msgEnv__)) return Microsoft.XLANGs.Core.StopConditions.Blocked; if (__ctx1__.__MessageIn != null) __ctx1__.UnrefMessage(__ctx1__.__MessageIn); __ctx1__.__MessageIn = new __messagetype_LeaveProject_LeaveRequestSchema("MessageIn", __ctx1__); __ctx1__.RefMessage(__ctx1__.__MessageIn); RecvFromEmpPort.ReceiveMessage(0, __msgEnv__, __ctx1__.__MessageIn, null, (Microsoft.XLANGs.Core.Context)_stateMgrs[1], __seg__); if (RecvFromEmpPort != null) { RecvFromEmpPort.Close(__ctx1__, __seg__); RecvFromEmpPort = null; } if ( !PostProgressInc( __seg__, __ctx__, 4 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; goto case 4; case 4: if ( !PreProgressInc( __seg__, __ctx__, 5 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; { Microsoft.XLANGs.RuntimeTypes.EventData __edata = new Microsoft.XLANGs.RuntimeTypes.EventData(Microsoft.XLANGs.RuntimeTypes.Operation.End | Microsoft.XLANGs.RuntimeTypes.Operation.Receive); __edata.Messages.Add(__ctx1__.__MessageIn); __edata.PortName = @"RecvFromEmpPort"; Tracker.FireEvent(__eventLocations[2],__edata,_stateMgrs[1].TrackDataStream ); } if (IsDebugged) return Microsoft.XLANGs.Core.StopConditions.InBreakpoint; goto case 5; case 5: if ( !PreProgressInc( __seg__, __ctx__, 6 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; Tracker.FireEvent(__eventLocations[3],__eventData[2],_stateMgrs[1].TrackDataStream ); if (IsDebugged) return Microsoft.XLANGs.Core.StopConditions.InBreakpoint; goto case 6; case 6: { __messagetype_LeaveProject_LeaveRequestSchema __MessageOut = new __messagetype_LeaveProject_LeaveRequestSchema("MessageOut", __ctx1__); __MessageOut.CopyFrom(__ctx1__.__MessageIn); __MessageOut.part.SetDistinguishedField("Details.Reason", "Modified by HR Sub Orch"); if (__ctx1__.__MessageOut != null) __ctx1__.UnrefMessage(__ctx1__.__MessageOut); __ctx1__.__MessageOut = __MessageOut; __ctx1__.RefMessage(__ctx1__.__MessageOut); } __ctx1__.__MessageOut.ConstructionCompleteEvent(false); if ( !PostProgressInc( __seg__, __ctx__, 7 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; goto case 7; case 7: if ( !PreProgressInc( __seg__, __ctx__, 8 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; { Microsoft.XLANGs.RuntimeTypes.EventData __edata = new Microsoft.XLANGs.RuntimeTypes.EventData(Microsoft.XLANGs.RuntimeTypes.Operation.End | Microsoft.XLANGs.RuntimeTypes.Operation.Construct); __edata.Messages.Add(__ctx1__.__MessageOut); Tracker.FireEvent(__eventLocations[4],__edata,_stateMgrs[1].TrackDataStream ); } if (IsDebugged) return Microsoft.XLANGs.Core.StopConditions.InBreakpoint; goto case 8; case 8: if ( !PreProgressInc( __seg__, __ctx__, 9 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; Tracker.FireEvent(__eventLocations[5],__eventData[3],_stateMgrs[1].TrackDataStream ); if (IsDebugged) return Microsoft.XLANGs.Core.StopConditions.InBreakpoint; goto case 9; case 9: { Microsoft.XLANGs.Core.Service svc = new LeaveProject.CalledOrch(2, InstanceId, this); _stateMgrs[2] = svc; __ctx1__.StartCall(__seg__, svc, __eventLocations[5],new object[] {__ctx1__.__MessageIn, new Microsoft.XLANGs.Core.MessageTuple((Microsoft.XLANGs.Core.Context)_stateMgrs[1], null)}); } if ( !PostProgressInc( __seg__, __ctx__, 10 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; return Microsoft.XLANGs.Core.StopConditions.Blocked; case 10: { object[] args = ((Microsoft.XLANGs.Core.Service)_stateMgrs[2]).Args; __ctx1__.__MessageIn = (__messagetype_LeaveProject_LeaveRequestSchema)((Microsoft.XLANGs.Core.MessageTuple)(args[1])).message; __ctx1__.__MessageIn.MessageName = "MessageIn"; } { Microsoft.XLANGs.RuntimeTypes.EventData __edata = new Microsoft.XLANGs.RuntimeTypes.EventData(Microsoft.XLANGs.RuntimeTypes.Operation.End | Microsoft.XLANGs.RuntimeTypes.Operation.Call); __edata.Messages.Add(__ctx1__.__MessageIn); __edata.Messages.Add(__ctx1__.__MessageIn); Tracker.FireEvent(__eventLocations[6],__edata,_stateMgrs[1].TrackDataStream ); } if (__ctx1__ != null && __ctx1__.__MessageIn != null) { __ctx1__.UnrefMessage(__ctx1__.__MessageIn); __ctx1__.__MessageIn = null; } if ( !PostProgressInc( __seg__, __ctx__, 11 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; goto case 11; case 11: if ( !PreProgressInc( __seg__, __ctx__, 12 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; Tracker.FireEvent(__eventLocations[7],__eventData[5],_stateMgrs[1].TrackDataStream ); if (IsDebugged) return Microsoft.XLANGs.Core.StopConditions.InBreakpoint; goto case 12; case 12: if (!__ctx1__.PrepareToPendingCommit(__seg__)) return Microsoft.XLANGs.Core.StopConditions.Blocked; if ( !PostProgressInc( __seg__, __ctx__, 13 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; goto case 13; case 13: if ( !PreProgressInc( __seg__, __ctx__, 14 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; SendToEmpPort.SendMessage(0, __ctx1__.__MessageOut, null, null, __ctx1__, __seg__ , Microsoft.XLANGs.Core.ActivityFlags.NextActivityPersists ); if (SendToEmpPort != null) { SendToEmpPort.Close(__ctx1__, __seg__); SendToEmpPort = null; } if ((stopOn & Microsoft.XLANGs.Core.StopConditions.OutgoingRqst) != 0) return Microsoft.XLANGs.Core.StopConditions.OutgoingRqst; goto case 14; case 14: if ( !PreProgressInc( __seg__, __ctx__, 15 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; { Microsoft.XLANGs.RuntimeTypes.EventData __edata = new Microsoft.XLANGs.RuntimeTypes.EventData(Microsoft.XLANGs.RuntimeTypes.Operation.End | Microsoft.XLANGs.RuntimeTypes.Operation.Send); __edata.Messages.Add(__ctx1__.__MessageOut); __edata.PortName = @"SendToEmpPort"; Tracker.FireEvent(__eventLocations[8],__edata,_stateMgrs[1].TrackDataStream ); } if (__ctx1__ != null && __ctx1__.__MessageOut != null) { __ctx1__.UnrefMessage(__ctx1__.__MessageOut); __ctx1__.__MessageOut = null; } if (IsDebugged) return Microsoft.XLANGs.Core.StopConditions.InBreakpoint; goto case 15; case 15: if ( !PreProgressInc( __seg__, __ctx__, 16 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; Tracker.FireEvent(__eventLocations[9],__eventData[6],_stateMgrs[1].TrackDataStream ); if (IsDebugged) return Microsoft.XLANGs.Core.StopConditions.InBreakpoint; goto case 16; case 16: if (!__ctx1__.CleanupAndPrepareToCommit(__seg__)) return Microsoft.XLANGs.Core.StopConditions.Blocked; if ( !PostProgressInc( __seg__, __ctx__, 17 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; goto case 17; case 17: if ( !PreProgressInc( __seg__, __ctx__, 18 ) ) return Microsoft.XLANGs.Core.StopConditions.Paused; __ctx1__.OnCommit(); goto case 18; case 18: __seg__.SegmentDone(); _segments[0].PredecessorDone(this); break; } return Microsoft.XLANGs.Core.StopConditions.Completed; }