예제 #1
0
        private HMessage InnerBuildMessage(string actor, string type, JToken payload, HMessageOptions mOptions)
        {
            if (actor == null || actor.Length <= 0)
            {
                throw new MissingAttrException("actor");
            }

            HMessage message = new HMessage();

            message.SetActor(actor);
            message.SetType(type);
            if (mOptions != null)
            {
                message.SetRef(mOptions.Ref);
                message.SetConvid(mOptions.Convid);
                message.SetPriority(mOptions.Priority);
                message.SetAuthor(mOptions.Author);
                message.SetHeaders(mOptions.Headers);
                message.SetLocation(mOptions.Location);
                message.SetPublished(mOptions.Published);
                message.SetPersistent(mOptions.Persistent);
                message.SetTimeout(mOptions.Timeout);
                if (mOptions.RelevanceOffset != null)
                {
                    Debug.WriteLine("----   " + mOptions.RelevanceOffset);
                    message.SetRelevance((DateTime.UtcNow).AddMilliseconds(mOptions.RelevanceOffset.Value));
                    Debug.WriteLine("++++   " + message.GetRelevance());
                }
                else
                {
                    message.SetRelevance(mOptions.Relevance);
                }
            }
            if (transportOptions != null && transportOptions.Login != null)
            {
                message.SetPublisher(transportOptions.FullUrn);
            }
            else
            {
                message.SetPublisher(null);
            }
            message.SetPayload(payload);
            return(message);
        }
예제 #2
0
        /// <summary>
        /// The client MUST be connected to access to this service.
        /// Allow a hubapp client to create a hMessage with a hConvState payload.
        /// </summary>
        /// <param name="actor"></param>
        /// <param name="convid"></param>
        /// <param name="status"></param>
        /// <param name="mOptions"></param>
        /// <returns></returns>
        public HMessage BuildConvState(string actor, string convid, string status, HMessageOptions mOptions)
        {
            if (actor == null || actor.Length <= 0)
            {
                throw new MissingAttrException("actor");
            }
            if (convid == null || convid.Length <= 0)
            {
                throw new MissingAttrException("convid");
            }
            if (status == null || status.Length <= 0)
            {
                throw new MissingAttrException("status");
            }

            HConvState convState = new HConvState();

            convState.SetStatus(status);

            HMessage message = BuildMessage(actor, "hConvState", convState, mOptions);

            message.SetConvid(convid);
            return(message);
        }