public RecommendationResponseCtxMsg(RecommendationRequestCtxMsg recReq)
        {
            if (recReq == null)
            {
                throw new ArgumentNullException("recReq", "Invalid recommendation request");
            }

            this.m_recReq  = recReq;
            this.m_type    = enuContextMsgType.RecommendationResponse;
            this.MeetingID = m_recReq.MeetingID;
            this.MessageID = m_recReq.MessageID;
        }
        private ContextMsg RecreateContextMsgFromXml(string strCtxMsg, enuContextMsgType type)
        {
            if (strCtxMsg == null || strCtxMsg.Length == 0)
            {
                throw new ArgumentException("Invalid Xml", "strCtxMsg");
            }

            ContextMsg ctxMsg = null;

            try
            {
                switch (type)
                {
                case enuContextMsgType.InfoAgentJoined:
                case enuContextMsgType.InfoAgentLeft: ctxMsg = InfoAgentCtxMsg.FromXml(strCtxMsg);
                    break;

                case enuContextMsgType.MeetingEnded:
                case enuContextMsgType.MeetingResumed:
                case enuContextMsgType.MeetingSuspended: ctxMsg = MeetingStatusCtxMsg.FromXml(strCtxMsg);
                    break;

                case enuContextMsgType.RecommendationRequest: ctxMsg = RecommendationRequestCtxMsg.FromXml(strCtxMsg);
                    break;

                case enuContextMsgType.ResourceRecalled:
                case enuContextMsgType.ResourceShared: ctxMsg = ResourceCtxMsg.FromXml(strCtxMsg);
                    break;
                }
            }
            catch (Exception /*e*/)
            {
            }

            return(ctxMsg);
        }