예제 #1
0
        public MessageQueueMessage(System.Messaging.Message message, MessageDirectionEnum direction)
        {
            this.m_Message = message;

            this.m_MessageBody = (MessageBody)message.Body;

            this.m_Label = message.Label;
            this.m_Direction = direction;
            this.m_MessageDate = DateTime.Now;
        }
예제 #2
0
        public MessageQueueMessage(System.Messaging.Message message, MessageDirectionEnum direction)
        {
            this.m_Message = message;

            this.m_MessageBody = (MessageBody)message.Body;

            this.m_Label       = message.Label;
            this.m_Direction   = direction;
            this.m_MessageDate = DateTime.Now;
        }
예제 #3
0
파일: BaseClient.cs 프로젝트: ewcasas/DVTK
        /// <summary>
        /// Publish the Message Available Event.
        /// </summary>
        /// <param name="localActorName">Local Actor Name.</param>
        /// <param name="remoteActorName">Remote Actor Name.</param>
        /// <param name="message">Message.</param>
        /// <param name="direction">Message direction.></param>
        public void PublishMessageAvailableEvent(ActorName localActorName, ActorName remoteActorName, Message message, MessageDirectionEnum direction)
        {
            BaseMessage baseMessage = new BaseMessage(message, direction);
            MessageAvailableEventArgs messageAvailableEvent = new MessageAvailableEventArgs(localActorName, remoteActorName, baseMessage);

            if (OnMessageAvailable != null)
            {
                OnMessageAvailable(this, messageAvailableEvent);
            }
        }
예제 #4
0
        /// <summary>
        /// 把Xml节点转换为ActivityTypeDetail 类(用于会签等复杂类型)
        /// </summary>
        /// <param name="typeNode">类型节点</param>
        /// <returns>活动类型详细</returns>
        private static ActivityTypeDetail ConvertXmlNodeToActivityTypeDetail(XmlNode typeNode)
        {
            ActivityTypeDetail typeDetail = new ActivityTypeDetail();

            typeDetail.ActivityType = (ActivityTypeEnum)Enum.Parse(typeof(ActivityTypeEnum), XMLHelper.GetXmlAttribute(typeNode, "type"));

            if (!string.IsNullOrEmpty(XMLHelper.GetXmlAttribute(typeNode, "trigger")))
            {
                TriggerTypeEnum triggerType = TriggerTypeEnum.None;
                Enum.TryParse <TriggerTypeEnum>(XMLHelper.GetXmlAttribute(typeNode, "trigger"), out triggerType);
                typeDetail.TriggerType = triggerType;

                //获取时间或消息表达式
                if (!string.IsNullOrEmpty(XMLHelper.GetXmlAttribute(typeNode, "expression")))
                {
                    typeDetail.Expression = XMLHelper.GetXmlAttribute(typeNode, "expression");
                }

                //获取消息捕获或抛出类型
                if (!string.IsNullOrEmpty(XMLHelper.GetXmlAttribute(typeNode, "messageDirection")))
                {
                    MessageDirectionEnum msgDirection = MessageDirectionEnum.None;
                    Enum.TryParse <MessageDirectionEnum>(XMLHelper.GetXmlAttribute(typeNode, "messageDirection"), out msgDirection);
                    typeDetail.MessageDirection = msgDirection;
                }
            }

            if (!string.IsNullOrEmpty(XMLHelper.GetXmlAttribute(typeNode, "complexType")))
            {
                typeDetail.ComplexType = EnumHelper.ParseEnum <ComplexTypeEnum>(XMLHelper.GetXmlAttribute(typeNode, "complexType"));
            }

            if (!string.IsNullOrEmpty(XMLHelper.GetXmlAttribute(typeNode, "mergeType")))
            {
                typeDetail.MergeType = EnumHelper.ParseEnum <MergeTypeEnum>(XMLHelper.GetXmlAttribute(typeNode, "mergeType"));
            }

            if (!string.IsNullOrEmpty(XMLHelper.GetXmlAttribute(typeNode, "compareType")))
            {
                typeDetail.CompareType = EnumHelper.ParseEnum <CompareTypeEnum>(XMLHelper.GetXmlAttribute(typeNode, "compareType"));
            }

            if (!string.IsNullOrEmpty(XMLHelper.GetXmlAttribute(typeNode, "completeOrder")))
            {
                typeDetail.CompleteOrder = float.Parse(XMLHelper.GetXmlAttribute(typeNode, "completeOrder"));
            }

            if (!string.IsNullOrEmpty(XMLHelper.GetXmlAttribute(typeNode, "subType")))
            {
                typeDetail.SubProcessType  = EnumHelper.ParseEnum <SubProcessTypeEnum>(XMLHelper.GetXmlAttribute(typeNode, "subType"));
                typeDetail.SubProcessGUID  = XMLHelper.GetXmlAttribute(typeNode, "subId");
                typeDetail.SubVariableName = XMLHelper.GetXmlAttribute(typeNode, "subVar");
            }

            if (!string.IsNullOrEmpty(XMLHelper.GetXmlAttribute(typeNode, "skip")))
            {
                var skip   = Boolean.Parse(XMLHelper.GetXmlAttribute(typeNode, "skip"));
                var skipto = XMLHelper.GetXmlAttribute(typeNode, "to");

                if (skip)
                {
                    typeDetail.SkipInfo = new SkipInfo {
                        IsSkip = skip, Skipto = skipto
                    };
                }
            }

            return(typeDetail);
        }
예제 #5
0
파일: BaseMessage.cs 프로젝트: ewcasas/DVTK
 /// <summary>
 /// Class constructor.
 /// </summary>
 /// <param name="message">Base message.</param>
 /// <param name="direction">Message direction.</param>
 public BaseMessage(Message message, MessageDirectionEnum direction)
 {
     _message = message;
     _direction = direction;
 }
예제 #6
0
 /// <summary>
 /// Class constructor.
 /// </summary>
 /// <param name="message">Base message.</param>
 /// <param name="direction">Message direction.</param>
 public BaseMessage(Message message, MessageDirectionEnum direction)
 {
     _message   = message;
     _direction = direction;
 }
예제 #7
0
        /// <summary>
        /// Publish the Message Available Event.
        /// </summary>
        /// <param name="localActorName">Local Actor Name.</param>
        /// <param name="remoteActorName">Remote Actor Name.</param>
        /// <param name="message">Message.</param>
        /// <param name="direction">Message direction.></param>
        public void PublishMessageAvailableEvent(ActorName localActorName, ActorName remoteActorName, Message message, MessageDirectionEnum direction)
        {
            BaseMessage baseMessage = new BaseMessage(message, direction);
            MessageAvailableEventArgs messageAvailableEvent = new MessageAvailableEventArgs(localActorName, remoteActorName, baseMessage);

            if (OnMessageAvailable != null)
            {
                OnMessageAvailable(this, messageAvailableEvent);
            }
        }