Esempio n. 1
0
        public void Execute(PersistBrokerPluginContext context)
        {
            var entity = context.Entity;

            switch (context.Action)
            {
            case EntityAction.PostCreate:
            {
                var data    = entity as upvote;
                var message = new message_remind()
                {
                    Id             = Guid.NewGuid().ToString(),
                    name           = $"{data.name}消息提醒",
                    is_read        = false,
                    is_readName    = "否",
                    receiverId     = data.object_ownerid,
                    receiverIdName = data.object_owneridName,
                    message_type   = "upvote",
                    content        = JsonConvert.SerializeObject(data)
                };
                context.Broker.Create(message);
            }
            break;

            case EntityAction.PreDelete:
            {
                var data     = context.Broker.Retrieve <upvote>(context.Entity.Id);
                var sql      = @"
SELECT * FROM (
	SELECT *, content::jsonb ->> 'objectId' AS objectid
	FROM message_remind WHERE 1=1  AND message_type = 'upvote'
) t1
WHERE t1.objectid = @id";
                var dataList = context.Broker.RetrieveMultiple <message_remind>(sql, new Dictionary <string, object>()
                    {
                        { "@id", data.objectId }
                    });
                dataList.Each(item => context.Broker.Delete(item));
            }
            break;

            default:
                break;
            }
        }
Esempio n. 2
0
        public void Execute(PersistBrokerPluginContext context)
        {
            var broker = context.Broker;

            switch (context.Action)
            {
            case EntityAction.PostCreate:
            {
                var data          = context.Entity as comments;
                var messageRemind = new message_remind()
                {
                    Id           = Guid.NewGuid().ToString(),
                    name         = $"{data.name}消息提醒",
                    is_read      = false,
                    is_readName  = "否",
                    content      = JsonConvert.SerializeObject(data),
                    message_type = data.comment_type
                };
                if (data.comment_type == "comment")
                {
                    messageRemind.receiverId     = data.object_ownerid;
                    messageRemind.receiverIdName = data.object_owneridName;
                }
                else if (data.comment_type == "reply")
                {
                    messageRemind.receiverId     = data.replyid;
                    messageRemind.receiverIdName = data.replyidName;
                }
                broker.Create(messageRemind);
            }
            break;

            default:
                break;
            }
        }