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; } }
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; } }