Example #1
0
        public CoolQRouteMessage(CoolQMessage message, CoolQIdentity cqIdentity, string atId = null)
        {
            Message = message;
            switch (cqIdentity.Type)
            {
            case MessageType.Private:
                MessageType = MessageType.Private;
                UserId      = cqIdentity.Id.ToString();
                break;

            case MessageType.Discuss:
                MessageType = MessageType.Discuss;
                DiscussId   = cqIdentity.Id.ToString();
                break;

            case MessageType.Group:
                MessageType = MessageType.Group;
                GroupId     = cqIdentity.Id.ToString();
                break;
            }

            if (atId == null)
            {
                return;
            }
            EnableAt = true;
            UserId   = atId;
        }
Example #2
0
        public static CoolQRouteMessage Parse(CoolQMessageApi coolQMessageApi, Authority level = Authority.Public)
        {
            var coolQMessage = new CoolQRouteMessage
            {
                Message          = CoolQMessage.Parse(coolQMessageApi.Message),
                UserId           = coolQMessageApi.UserId.ToString(),
                MessageId        = coolQMessageApi.MessageId,
                CurrentAuthority = level,
                ReportMeta       = coolQMessageApi
            };

            switch (coolQMessageApi)
            {
            case CoolQPrivateMessageApi privateMsg:
                coolQMessage.MessageType = MessageType.Private;
                coolQMessage.Private     = privateMsg;
                break;

            case CoolQDiscussMessageApi discussMsg:
                coolQMessage.MessageType = MessageType.Discuss;
                coolQMessage.Discuss     = discussMsg;
                coolQMessage.DiscussId   = discussMsg.DiscussId.ToString();
                break;

            case CoolQGroupMessageApi groupMsg:
                coolQMessage.MessageType = MessageType.Group;
                coolQMessage.Group       = groupMsg;
                coolQMessage.GroupId     = groupMsg.GroupId.ToString();
                break;
            }

            return(coolQMessage);
        }
Example #3
0
 public CoolQRouteMessage ToSource(CoolQMessage message, bool enableAt = false)
 {
     return(new CoolQRouteMessage
     {
         UserId = UserId,
         DiscussId = DiscussId,
         GroupId = GroupId,
         MessageType = MessageType,
         Message = message,
         EnableAt = enableAt,
         Handled = Handled,
         Canceled = false,
         IsForced = IsForced,
         DelayTime = DelayTime
     });
 }
Example #4
0
 public override string ToString() => CoolQMessage.Compose(this);
Example #5
0
 protected Template()
 {
     _inner = new CoolQMessage(CoolQCodes);
 }